1.翻頁的實現
**:
importscrapy
import
refrom scpy1.items import
scpy1item
class
qiubai1spider(scrapy.spider):
name = '
qiubai1
'allowed_domains = ['
qiushibaike.com']
start_urls = ['
']domain_url = '
'def
parse(self, response):
#獲取笑話列表
joke_list = response.xpath("
//div[contains(@class, 'article block')]")
#解析笑話內容
for joke in
joke_list:
#解析作者、內容
author = joke.xpath("
./div/a[2]/h2/text()
").extract_first()
content = joke.xpath("
.//div[@class='content']/span/text()
").extract()
#封裝資料至item
item =scpy1item()
item[
'author
'] = re.sub("
[\n]
", ""
, author)
item[
'content
'] = re.sub("
[\n]
", "", ','
.join(content))
yield
item
# next_url = response.xpath("
//span[@class='next']/../@href
").extract_first() ##if
next_url:
yield scrapy.request(self.domain_url + next_url, callback=self.parse)
2.匯出到檔案
執行成功後,會發現item資料量比較多了,這次不再print ,而是把資料匯出至csv檔案檢視。 用到的命令是:
scrapy crawl qiubai1 -o qiubai1.csv
匯出的中文是亂碼,這個時候需要改下settings.py 檔案,設定下匯出編碼
#feed export encoding
feed_export_encoding = '
gb18030
'
網上可能有些寫utf-8的,不行的,我的都是自己測試過的。
十二 scrapy中實現翻頁請求
scrapy.request能構建乙個requests,同時指定提取資料的callback函式 next page url while 判斷條件,結束遞迴 yield scrapy.request next page url,callback self.parse scrapy.request方法講...
爬蟲中實現翻頁(佇列實現)
在爬取列表頁時,通常我們需要翻頁,最簡單的翻頁實現是遞迴呼叫,偽 如下 def crawl list url next url crawl url process html data extract next url if next url is not none crawl list next u...
scrapy爬蟲框架 三
pipelines.py from scrapy.exporters import jsonitemexporter class qsbkspiderpipeline object def init self 初始化方法 使用二進位制來寫入,因此 w wb self.fp open duanzi2....