刮痧爬而不废

2024-06-28 19:53:52 发布

您现在位置:Python中文网/ 问答频道 /正文

问题是,如果我直接将产品url添加到“start_url”中,一切都会正常工作。但当产品页面在爬网过程中出现时(所有爬网页面都返回“200”),它不会刮取。。。。 我在给蜘蛛查一下:

scrape crawl site_products -t csv -o Site.csv

卡盘代码:

^{pr2}$

我错过了什么?在


Tags: csv代码url网页产品过程site页面
1条回答
网友
1楼 · 发布于 2024-06-28 19:53:52

我已经测试过,这个网站似乎屏蔽了所有非标准的用户代理(返回403)。因此,请尝试将user_agent类paremeter设置为常见的值,例如:

class SiteProducts(CrawlSpider):
    name = 'site_products'
    user_agent = 'Mozilla/5.0 (X11; Linux x86_64; rv:49.0) Gecko/20100101 Firefox/49.0'

或者在项目中设置它settings.py

^{pr2}$

您可以在web上找到更多的用户代理字符串,例如official mozzila docummentation

编辑:
经过进一步检查,我发现你的LinkExtractor逻辑有问题。linkextractor按定义的规则顺序提取,并且您的提取器溢出,这意味着第一个具有follow的linkextractor也将提取产品页面,这意味着您拥有的product link提取器将抓取先前已爬网的页面并进行重复筛选。在

你需要修改你的第一个linkextractor来避免产品页面。只需将allow参数从linkextractor复制到第一个linkextractor的deny参数,就可以做到这一点。在

相关问题 更多 >