gpt4 book ai didi

python - 单击 Scrapy-Splash 中的显示按钮

转载 作者:太空狗 更新时间:2023-10-30 00:58:15 24 4
gpt4 key购买 nike

我正在使用 scrapy-splash 抓取以下网页,http://www.starcitygames.com/buylist/ ,我必须登录才能获取我需要的数据。这工作正常,但为了获得我需要单击显示按钮的数据,以便我可以抓取该数据,我需要的数据在单击按钮之前无法访问。我已经得到了一个答案,告诉我我不能简单地单击显示按钮并抓取显示的数据,我需要抓取与该信息关联的 JSON 网页,但我担心抓取 JSON 会变成红色标记给网站的所有者,因为大多数人不会打开 JSON 数据页面,而且人类需要几分钟才能找到它,而计算机要快得多。所以我想我的问题是,有没有办法抓取我点击​​显示的网页并从那里抓取,或者我别无选择只能抓取 JSON 页面?这是我到目前为止所得到的......但它没有点击按钮。

import scrapy
from ..items import NameItem

class LoginSpider(scrapy.Spider):
name = "LoginSpider"
start_urls = ["http://www.starcitygames.com/buylist/"]

def parse(self, response):
return scrapy.FormRequest.from_response(
response,
formcss='#existing_users form',
formdata={'ex_usr_email': 'abc@example.com', 'ex_usr_pass': 'password'},
callback=self.after_login
)



def after_login(self, response):
item = NameItem()
display_button = response.xpath('//a[contains(., "Display>>")]/@href').get()

yield response.follow(display_button, self.parse)

item["Name"] = response.css("div.bl-result-title::text").get()
return item

Snapshot of website HTML COde

最佳答案

您可以使用浏览器的开发者工具来跟踪该点击事件的请求,它是一种很好的 JSON 格式,也不需要 cookie(登录):

http://www.starcitygames.com/buylist/search?search-type=category&id=5061

唯一需要填写的是与此请求相关的category_id,这可以从HTML中提取并在您的代码中声明。

类别名称:

//*[@id="bl-category-options"]/option/text()

类别编号:

//*[@id="bl-category-options"]/option/@value

使用 JSON 比解析 HTML 简单得多。

关于python - 单击 Scrapy-Splash 中的显示按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56758090/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com