【发布时间】:2020-08-01 09:47:22
【问题描述】:
最终,我试图打开新闻网站的所有文章,然后将所有文章中使用的词排在前 10 位。为此,我首先想看看有多少文章,以便我可以在某个时候对它们进行迭代,还没有真正弄清楚我想如何做所有事情。
为此,我想使用 BeautifulSoup4。我认为我想要获得的课程是 Javascript,因为我没有得到任何回报。 这是我的代码:
url = "http://ad.nl"
ad = requests.get(url)
soup = BeautifulSoup(ad.text.lower(), "xml")
titels = soup.findAll("article")
print(titels)
for titel in titels:
print(titel)
文章名称有时是 h2 或 h3。它总是有一个相同的课程,但我无法通过该课程获得任何东西。它有一些父母,但它使用相同的名称,但例如扩展名为 -wrapper。我什至不知道如何使用父母来获得我想要的东西,但我认为这些类也是 Javascript。还有一个我感兴趣的href。但再一次,这可能也是Javascript,因为它什么都不返回。
有谁知道我可以如何使用 BeautifulSoup 来使用任何东西(最好是 href,但文章名称也可以)?
【问题讨论】:
-
如果您在浏览器中打开您的网址,您可以查看源代码。 如果你想要的东西在那里,那么它来自服务器,而不是通过JS添加,所以Beautifulsoup可以工作。如果它确实来自服务器,那么我将使用适当的 CSS 选择器,您可以在浏览器的开发工具控制台中通过
$("<selector>")使用它。一旦成功,在浏览器中,soup.select("<selector>")可以接管。据我所知,您可以通过 BeautifulSoup 中的 CSS 选择器获得与其自定义find一样多的功能。不同之处在于您可以从使用 CSS 的前端人员那里获得帮助。 -
我遇到的一个问题是在打开页面时,您首先会看到 Accept Cookie 页面。如果不通过该页面,您将无法继续获取文章。
-
@Sri 不错!从来没有想过 GDPR cookie 是一个抓取拦截器,但是我再次知道抓取,我的观点仅限于如何从网页中抓取数据以进行单元测试。有谁知道请求是否可以甜言蜜语成为 GDPR cookie 接受(它可能不能,但为什么不问)?还是你必须直接去硒?
标签: javascript python class web-scraping beautifulsoup