爬蟲 Scrapy(三) 翻頁的實現

2022-06-06 07:45:10 字數 1516 閱讀 8713

1.翻頁的實現

**:

import

scrapy

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....