[求助] 使用 scrapy 爬 nytimes, html 中时间的值总是错误的

2 天前
 CareiOS

今天想爬点 nytimes 的新闻来看,爬这个地址的时候,每条消息的 date 爬取不到。 https://www.nytimes.com/section/politics

我加了 scrapy-playwright 还是一样的。求爬虫大声指点一下。

这是爬虫代码

import scrapy

from my_spider.items import MySpiderItem

class Mypider(scrapy.Spider):
    name = "myspider"
    allowed_domains = ["nytimes.com"]
    start_urls = ["https://www.nytimes.com/section/politics"]

    def start_requests(self):
        for url in self.start_urls:
            # 使用 PlaywrightRequest 来加载动态内容
            # GET request
            yield scrapy.Request(url, meta={"playwright": True})
            # POST request
            yield scrapy.FormRequest(
                url="https://httpbin.org/post",
                formdata={"foo": "bar"},
                meta={"playwright": True},
            )

    def parse(self, response):
        for article in response.css('.css-18yolpw'):
            item = MySpiderItem()
            item["title"] = article.css('div:nth-child(1) > article:nth-child(1) > a:nth-child(2) > h3:nth-child(1)::text').get()
            t = article.xpath('div/article/a/h3/text()').get() 
            item["date"] = article.css('div:nth-child(1) > div:nth-child(2) > span:nth-child(1)::text').get()
            d = article.xpath('div/div/span/text()').get()
            item["url"] = response.urljoin(article.css('div:nth-child(1) > article:nth-child(1) > a:nth-child(2)::attr(href)').get())
            item["claim"] = article.css('div:nth-child(1) > article:nth-child(1) > p:nth-child(3)::text').get()
            item["rating"] = "True"
            item["site"] = "NYTimes"
            item["tag"] = "NYTimes"
            yield item

d 的值都是"\u00a0"

508 次点击
所在节点    程序员
3 条回复
alabrala
2 天前
网页返回的原始文本对应的时间标签就是空的
时间是 js 加载的
在这:

你需要把那段 json 提取出来做解析
CareiOS
2 天前
@alabrala 大佬,你的图看不到了。
alabrala
1 天前
@CareiOS 网络问题吧,你刷新一下,换个稳定的梯子
实在不行你去你拿下来的 html 里搜:window.__preloadedData

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1107508

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX