gpt4 book ai didi

python - 无法使用scrapy从网页中获取不同列表的标题

转载 作者:行者123 更新时间:2023-12-05 07:04:52 25 4
gpt4 key购买 nike

我正在尝试从这个 webpage 中解析不同列表的标题.标题不是动态的,因为它们在页面源代码中可用。但是,必须首先发送 cookie 才能抢到标题。我试过以下方法来抓取列表的标题,但它似乎不起作用。

到目前为止我的尝试:

import scrapy
from scrapy.crawler import CrawlerProcess

class ControllerSpider(scrapy.Spider):
name = 'controller'
start_urls = [
'https://www.controller.com/listings/aircraft/for-sale/list?SortOrder=23&scf=False&page=1'
]

def start_requests(self):
for i,url in enumerate(self.start_urls):
yield scrapy.Request(url,meta={'cookiejar': i},callback=self.parse)

def parse(self,response):
for item in response.css(".listing-name > a[href]::text").getall():
yield {"title":item}

if __name__ == "__main__":
c = CrawlerProcess({
'USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; ) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36',
})
c.crawl(ControllerSpider)
c.start()

如何使用 cookie 从该网页获取不同列表的标题?

PS 我不想对 cookie 进行硬编码。

最佳答案

如果您使用抓取浏览器扩展程序,则无需手动处理 cookie。正常访问该站点,从而获取 cookie,然后将其抓取。

https://github.com/get-set-fetch/extension是一个开源扩展,只需为链接导航和内容提取指定 CSS 选择器即可处理您的场景。

我已经对网站进行了一些尝试,并为您创建了一个抓取配置,其中包含用于导航(下一页、飞机详细信息页面)和抓取(年份、型号、制造商、价格)所需的 CSS 选择器

"eLtI4gnapZQ9b8MgEIb/CuoQtQO4SZolktWta4Z2zELwYSNhjI5z3P77AmrS2ulH0gwI7OM9ne7eh+PVVH9qPKBQXXsCBRmywKSrWMxopGWub3eAR1YaIh/WRTEMg1CjVIU1gYyrQyENKpSaCt0hD9JCDj0+d0gbrADLxXIWlC6fkhdmPjannI8ZrIF4iEsnYPghEA8oPfBoUTKKf3r4Gl7v/wPoVPcDAlPXj5BQjXQ1vHw1djblxgNmzsP0+Tjb62JHjsfmt+kgHLxSRD5vqdlbV5m9+JgWT7mZjPHD1PKdES2rKSzflnUuHKLl1Hk+XwmlmcBuWDtquGqMrW4Xd0wED4rvpe3TO/UGErfuN8lyKmml63Wsp0f4Q/pwIu3ihKLGo1Fw/Ju/bi4g9TIy3wGjz0AS"

在扩展中执行:新建项目 > 配置哈希 > 粘贴上面的哈希(不带引号)> 保存、抓取、查看结果 > 导出为 csv。

每个 csv 行都有年份、制造商、型号和价格。我设置了一些限制,因此只有前 4 个结果页面会被抓取,但您可以通过将相应的值设置为 -1 来禁用它。

免责声明:我是扩展作者。

关于python - 无法使用scrapy从网页中获取不同列表的标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62858538/

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