第二次爬虫,更加熟练啦
生活随笔
收集整理的這篇文章主要介紹了
第二次爬虫,更加熟练啦
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、回顧
一小時前我看了一個爬蟲教程,爬了一個代理網站的ip,我又看了另一個視頻,發現有些步驟可以改進的,此外還學習了一些xpath語法,這里記錄一下。
二、創建scrapy項目的新姿勢
打開pycharm,創建新項目(項目名必須英文),import scrapy,安裝好之后,進入pycharm的終端界面:
設置一個臨時環境變量,這樣就能直接運行 scrapy.exe了:
然后就可以直接 startproject ,進入創建好的目錄后生成爬蟲類:
三、修改 settings.py
改動三個地方,分別是添加 user-agent ,不遵守robots協議,把日志等級改低,減少垃圾輸出:
# Crawl responsibly by identifying yourself (and your website) on the user-agent USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'# Obey robots.txt rules ROBOTSTXT_OBEY = FalseLOG_LEVEL='WARN'四、編寫爬蟲代碼
現在萬事俱備,可以寫代碼了,編輯剛才生成的爬蟲類 index.py
生成爬蟲類時輸入的url是 baidu.com ,這個不對,要改,隨便打開一個搜索界面:
復制url到代碼中:
start_urls = ['https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E5%A4%96%E4%BA%A4%E9%83%A8%3A%E4%B8%AD%E6%96%B9%E5%86%B3%E5%AE%9A%E5%8F%AC%E5%9B%9E%E9%A9%BB%E7%AB%8B%E9%99%B6%E5%AE%9B%E5%A4%A7%E4%BD%BF&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1']定位右邊的熱點詞條:
把 class 復制一下,xpath如下:
//a[@class="c-font-medium c-color-t opr-toplist1-subtitle_3FULy"]然后通過以下python語句可以得到熱點詞條的list:
news = response.xpath('//a[@class="c-font-medium c-color-t opr-toplist1-subtitle_3FULy"]/text()').extract()完整代碼:
import scrapyclass BaiduSpiderSpider(scrapy.Spider):name = 'baidu_spider'allowed_domains = ['baidu.com']start_urls = ['https://www.baidu.com/s?cl=3&tn=baidutop10&fr=top1000&wd=%E5%A4%96%E4%BA%A4%E9%83%A8%3A%E4%B8%AD%E6%96%B9%E5%86%B3%E5%AE%9A%E5%8F%AC%E5%9B%9E%E9%A9%BB%E7%AB%8B%E9%99%B6%E5%AE%9B%E5%A4%A7%E4%BD%BF&rsv_idx=2&rsv_dl=fyb_n_homepage&hisfilter=1']def parse(self, response):# print(response.body) # 打印整個頁面,確保沒被bannews = response.xpath('//a[@class="c-font-medium c-color-t opr-toplist1-subtitle_3FULy"]/text()').extract()print(news)# news = response.xpath('//a[@class="c-font-medium c-color-t opr-toplist1-subtitle_3FULy"]')# for n in news:# print(n.attrib.get('title'))pass運行:
總結
以上是生活随笔為你收集整理的第二次爬虫,更加熟练啦的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一次scrapy爬虫记录
- 下一篇: 结构化异常捕获空指针异常