【发布时间】:2020-08-16 05:02:13
【问题描述】:
我正在尝试抓取一个网站,该网站在页面底部有一个“显示更多”链接,该链接会导致更多数据被抓取。这是网站页面的链接:https://untappd.com/v/total-wine-more/47792。这是我的完整代码:
class Untap(scrapy.Spider):
name = "Untappd"
allowed_domains = ["untappd.com"]
start_urls = [
'https://untappd.com/v/total-wine-more/47792' #URL: Major liquor store chain with Towson location.
]
def parse(self, response):
for beer_details in response.css('div.beer-details'):
yield {
'name': beer_details.css('h5 a::text').getall(), #Name of Beer
'type': beer_details.css('h5 em::text').getall(), #Style of Beer
'ABVIBUs': beer_details.css('h6 span::text').getall(), #ABV and IBU of Beer
'Brewery': beer_details.css('h6 span a::text').getall() #Brewery that produced Beer
}
load_more = response.css('a.yellow button more show-more-section track-click::attr(href)').get()
if load_more is not None:
load_more = response.urljoin(load_more)
yield scrapy.Request(load_more, callback=self.parse)
我已尝试使用底部的“load_more”块继续加载更多数据以进行抓取,但来自网站的 HTML 输入没有工作。
这是来自网站的 HTML。
<a href="javascript:void(0);" class="yellow button more show-more-section track-click" data-track="venue" data-href=":moremenu" data-section-id="140216931" data-venue-id="47792" data-menu-id="38988361">Show More Beers</a>
我想让蜘蛛抓取网站上显示的内容,然后单击链接并继续抓取页面。任何帮助将不胜感激。
【问题讨论】: