Scrapy爬虫仅爬取CSV中25条链接问题排查及全量爬取方法咨询
问题分析与解决方案
先帮你梳理下代码里导致只爬取25条数据的核心问题:
- 起始URL初始化错误:你现在只从CSV里取了第3行(索引为2)的单个链接作为
start_urls,根本没把71条链接都传入爬虫的起始请求队列。 - 手动迭代链接的逻辑有bug:你用类变量
n来控制下一个要爬的链接,但Scrapy是并发处理请求的,多个请求会同时修改这个共享的类变量,导致计数混乱——要么跳过大量链接,要么重复处理,这就是为什么只爬了25条就停了。
正确实现从CSV获取所有start_urls的方法
完全不需要手动维护迭代逻辑,Scrapy本身就会自动调度处理所有start_urls里的请求,按以下方式修改代码即可:
- 读取CSV时直接提取所有链接列的数据,转换成列表赋值给
start_urls - 删除类变量
n、page_number以及parse方法里手动获取下一个链接的冗余逻辑
修改后的完整代码:
import pandas as pd import scrapy class HurriyetEmlakPage(scrapy.Spider): name = 'hurriyetspider' # 读取CSV并提取所有链接列的数据(假设链接在第2列,索引为1) df1 = pd.read_csv("C:/Users/Mert/Desktop/hurriyet/emlak/links.csv") # 过滤空链接,避免无效请求 start_urls = [str(url) for url in df1.iloc[:, 1].tolist() if pd.notna(url)] custom_settings={ 'FEED_URI': "scrapped_pages.csv", 'FEED_FORMAT': 'csv', # 可选:添加反爬延迟,避免被网站封禁 'DOWNLOAD_DELAY': 1.5 } def parse(self, response): il = response.xpath('//[contains(concat( " ", @class, " " ), concat( " ", "short-info-list", " " ))]//li[(((count(preceding-sibling::) + 1) = 1) and parent::*)]/text()').extract() ilce = response.xpath('//[contains(concat( " ", @class, " " ), concat( " ", "short-info-list", " " ))]//li[(((count(preceding-sibling::) + 1) = 2) and parent::*)]/text()').extract() mahalle = response.xpath('//[contains(concat( " ", @class, " " ), concat( " ", "short-info-list", " " ))]//li[(((count(preceding-sibling::) + 1) = 3) and parent::*)]/text()').extract() fiyat = response.xpath('//*[contains(concat( " ", @class, " " ), concat( " ", "price", " " ))]/text()').extract() baslik = response.css('.txt::text').extract() deger = response.css('.adv-info-list div span , .txt+ span::text').extract() scraped_info = { 'İl': il, 'İlçe' : ilce, 'Mahalle' : mahalle, 'Fiyat' : fiyat, 'İlan Bilgileri - Başlık': baslik, 'İlan Bilgileri - Değer' : deger } yield scraped_info
额外提示
- 如果CSV里存在空链接,代码里的
if pd.notna(url)会自动过滤,避免发送无效请求 - 可以根据网站反爬强度调整
DOWNLOAD_DELAY的值,或者添加USER_AGENT伪装成浏览器请求 - Scrapy默认并发处理8个请求,你可以在
custom_settings里添加CONCURRENT_REQUESTS参数调整并发数
内容的提问来源于stack exchange,提问作者merts97
相关产品推荐
相关产品推荐

