如何在此处抓取10篇文章的链接,标题,作者和时间戳?汤的输出看起来与浏览器不同

问题描述 投票:0回答:1

我正在尝试获取此网页上10篇文章的[[链接,标题作者时间戳https://www.investing.com/equities/micron-tech-news

在撰写本文时,>

第一篇文章的链接是“ https://www.investing.com/news/economy/take-five-swap-lines-to-the-rescue-2117042”,

标题是“采取五项措施:抢救线,

作者是路透社]

并且时间戳是“ 22小时前”。

页面上共有10篇文章。但是,当我尝试通过请求运行beautifulsoup4时,在第一篇正确的文章出现之前,我会收到一堆本不应该存在的文章。

并且一堆垃圾文章也出现在末尾,最后只有四个链接出现,而其他链接则不应该出现。

我不知道为什么网页要这样加载。我该如何去做我想做的?

我正在使用以下代码:

import requests from bs4 import BeautifulSoup header = { "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.149 Safari/537.36", "X-Requested-With": "XMLHttpRequest" } link = "https://www.investing.com/equities/micron-tech/" linklist = [] r = requests.get(link, headers=header) soup = BeautifulSoup(r.text, "html") links = soup.findAll("a", { "class" : "img" }) titles = soup.findAll("a", { "class" : "title" }) details = soup.findAll("span",{"class":"articleDetails"}) #contains the author and time stamp for i in range(len(links)): print(links[i]['href']) #links print(titles[i]['title']) #titles # print(details[i]['span']) #doesnt work print(details[i]) #author and time stamp

您可以看到我有两个问题,首先,文章看起来与网站上的文章不一样,其次,当我尝试时,我无法访问显示作者和时间戳的详细信息做细节[i] ['span']我收到一个错误。

我正在尝试获取此网页上10篇文章的链接,标题,作者和时间戳:https://www.investing.com/equities/micron-tech-news在撰写本文时,第一篇...

python web-scraping beautifulsoup python-requests
1个回答
1
投票
实际上,似乎在页面顶部也有文章,因此您可能需要查看第二个父级divclass=mediumTitle1。同样对于类别为articleDetails的元素,有时它们是div有时是span,因此您可以使用find(class_="articleDetails").findNext("span")提取作者来处理这两个问题:
© www.soinside.com 2019 - 2024. All rights reserved.