第二次爬虫,更加熟练啦
生活随笔
收集整理的這篇文章主要介紹了
第二次爬虫,更加熟练啦
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、回顧
一小時(shí)前我看了一個(gè)爬蟲教程,爬了一個(gè)代理網(wǎng)站的ip,我又看了另一個(gè)視頻,發(fā)現(xiàn)有些步驟可以改進(jìn)的,此外還學(xué)習(xí)了一些xpath語法,這里記錄一下。
二、創(chuàng)建scrapy項(xiàng)目的新姿勢
打開pycharm,創(chuàng)建新項(xiàng)目(項(xiàng)目名必須英文),import scrapy,安裝好之后,進(jìn)入pycharm的終端界面:
設(shè)置一個(gè)臨時(shí)環(huán)境變量,這樣就能直接運(yùn)行 scrapy.exe了:
然后就可以直接 startproject ,進(jìn)入創(chuàng)建好的目錄后生成爬蟲類:
三、修改 settings.py
改動三個(gè)地方,分別是添加 user-agent ,不遵守robots協(xié)議,把日志等級改低,減少垃圾輸出:
# 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'四、編寫爬蟲代碼
現(xiàn)在萬事俱備,可以寫代碼了,編輯剛才生成的爬蟲類 index.py
生成爬蟲類時(shí)輸入的url是 baidu.com ,這個(gè)不對,要改,隨便打開一個(gè)搜索界面:
復(fù)制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']定位右邊的熱點(diǎn)詞條:
把 class 復(fù)制一下,xpath如下:
//a[@class="c-font-medium c-color-t opr-toplist1-subtitle_3FULy"]然后通過以下python語句可以得到熱點(diǎn)詞條的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) # 打印整個(gè)頁面,確保沒被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運(yùn)行:
總結(jié)
以上是生活随笔為你收集整理的第二次爬虫,更加熟练啦的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 第一次scrapy爬虫记录
- 下一篇: 结构化异常捕获空指针异常