我试图从这个webpage解析不同列表的标题。标题不是动态的,因为它们在页面源代码中可用。然而,首先需要发送cookies来获取标题。我试过用下面的方法来抓取列表的标题,但似乎不起作用
我迄今为止的努力:
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()
如何利用cookies从该网页中获取不同列表的标题?
PS我不想硬编码cookies
如果您使用的是“刮削”浏览器扩展,则不必手动处理cookie。正常访问站点,从而获取cookies,然后将其刮掉
https://github.com/get-set-fetch/extension是一个开源扩展,只需为链接导航和内容提取指定CSS选择器即可处理您的场景
我对该网站进行了一些操作,为您创建了一个刮削配置,其中包含导航(下一页,飞机详细信息页)和刮削(年份、型号、制造商、价格)所需的CSS选择器
"4.这个词的意思是指一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一个单词,一GQMRW4XD04RVPe3TO/UGErfuN8lyKmml63Wsp0f4Q/pwIu3ihKLGo1Fw/Ju/bi4g9TIy3wGjz0AS”
在扩展do:new project内>;config hash>;粘贴上述哈希(不带引号)>;保存、刮取、查看结果>;导出为csv
每个csv行都有年份、制造商、型号和价格。我设置了一些限制,因此只会刮取前4个结果页,但您可以通过将相应的值设置为-1来禁用它
免责声明:我是扩展的作者
相关问题 更多 >
编程相关推荐