Python 刮痒的蜘蛛没有显示出完整的结果
大家好,我正在尝试从代码中的给定链接获得完整的结果。但是我的代码没有给出所有的结果。此链接表示它包含2132个结果,但只返回20个结果:Python 刮痒的蜘蛛没有显示出完整的结果,python,web-scraping,scrapy,Python,Web Scraping,Scrapy,大家好,我正在尝试从代码中的给定链接获得完整的结果。但是我的代码没有给出所有的结果。此链接表示它包含2132个结果,但只返回20个结果: from scrapy.spider import Spider from scrapy.selector import Selector from tutorial.items import Flipkart class Test(Spider): name = "flip" allowed_domains = ["flipkart.com"]
from scrapy.spider import Spider
from scrapy.selector import Selector
from tutorial.items import Flipkart
class Test(Spider):
name = "flip"
allowed_domains = ["flipkart.com"]
start_urls = ["http://www.flipkart.com/mobiles/pr?sid=tyy,4io& otracker=ch_vn_mobile_filter_Mobile%20Brands_All"
]
def parse(self, response):
sel = Selector(response)
sites = sel.xpath('//div[@class="pu-details lastUnit"]')
items = []
for site in sites:
item = Flipkart()
item['title'] = site.xpath('div[1]/a/text()').extract()
items.append(item)
return items**
这是因为该站点一次只显示20个结果,当用户滚动到页面底部时,可以使用JavaScript加载更多的结果 这里有两个选项:
- 在站点上查找一个链接,该链接在单个页面上显示所有结果(怀疑该链接是否存在,但某些站点在传递可选查询字符串时可能会这样做)
- 在spider中处理JavaScript事件。默认的Scrapy downloader不能做到这一点,因此您可以自己编程分析JS代码并发送事件信号,或者使用类似w/的东西让浏览器来处理它。我推荐后者,因为它比手动解释JS的方法更能防止故障。有关更多信息,请参阅和谷歌,关于这个主题有很多信息