【发布时间】:2020-11-01 15:02:32
【问题描述】:
我正在尝试从 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。
【问题讨论】:
-
我试过了,还是用selenium更好
-
澄清一下,您为什么不想对 cookie 进行硬编码?
-
如果我现在对 cookie 进行硬编码并运行脚本,我将获得成功。但是,当我在其他时间运行它时,除非我更新 cookie,否则我可能找不到脚本工作,因为 cookie 并不总是静态的。希望您了解我不想使用硬编码 cookie @zmike 的原因。谢谢。
-
我同意@bigbounty 所说的:使用硒。另请注意,此特定网站似乎正在“翻新”,您可能更愿意在 beta.controller.com/listings/search 上编写预览的抓取过程
标签: python python-3.x web-scraping cookies scrapy