【发布时间】:2020-05-31 23:55:58
【问题描述】:
我正在训练使用 scrapy 在超市网站上抓取: https://www.pnp.co.za/pnpstorefront/pnp/en/All-Products/Fresh-Food/Milk-%26-Cream/c/milk-and-cream703655157
我注意到在使用 chrome 时,我会得到一个页面,显示 5 个页面上的 106 个结果。但是,当使用带有 scrapy(和其他抓取软件)的 spide 时,结果数量会减少到 2 页上的 30 个产品。似乎该站点限制了使用 scrapy 时显示的结果。一个人如何解决这个问题,让一只爬虫蜘蛛被视为我在 Chrome 上的笔记本电脑?
我使用以下 cmd 来运行 sypder:
scrapy crawl tstPnPCategories -o out.csv
这里是 spyder 脚本:
import scrapy
class testSpydi(scrapy.Spider):
name = 'tstPnPCategories'
start_urls = [
'https://www.pnp.co.za/pnpstorefront/pnp/en/All-Products/Fresh-Food/Milk-%26-Cream/c/milk-and-cream703655157'
]
def parse(self, response):
names = response.css(".item-name::text").extract()
print("*** *******")
print("")
print("NAMES")
print("")
print("************")
for name in names:
print("")
print(name)
print("")
yield {
'item': name
}
next_page = response.css("li.pagination-next a::attr(href)").get()
if next_page is not None:
yield response.follow(next_page, self.parse)
【问题讨论】:
-
@jsotola,注意到,德克萨斯州。关于如何使用 scrapy 选择区域的任何建议?一点头绪都没有。
标签: web-scraping scrapy