美丽汤4无法深入查找文章



我刚开始尝试python和BeautifulSoup。

我想获得与特定城市相关的文章的链接

这是当前的代码

import requests
from bs4 import BeautifulSoup
city = "london"
result = requests.get('https://www.origo.hu/kereses/index.html?q=' + city)

def main_loop():
soup = BeautifulSoup(result.content, features="lxml")
articles = soup.find("div", "oc-articleList")
print(articles)

if result.status_code == 200:
main_loop()
else:
print('error:', result.status_code)

结果是:

<div class="oc-articleList"></div>

我尝试的第一件事是用获取文章

articles = soup.find_all("article")

但它可以找到任何东西。

如果你检查网站的源代码,它看起来像这样:

<div class="oc-articleList">
<article>...</article>
<article>...</article>
<article>...</article>
<article>...</article>
.
.
.
</div>

如何使BS解析深入DOM?

ANSWER 1(
TLDR:只需在搜索第一个元素后添加另一个.find((或.find_all((即可找到嵌套元素。

汤.find(((在您的案例中是变量文章(中找到div元素后,您可以使用.find

举例来说,基于您提供的代码:

...
def main_loop():
soup = BeautifulSoup(result.content, features="lxml")
### ADDED .find_all() after the first search ###
articles = soup.find("div", "oc-articleList").find_all("article")
print(articles)

...

请记住find_all((现在将返回一个列表

答案2(
请求只捕获HTML和CSS内容,而JavaScript不显示

解决方案:使用预渲染服务,即

result = requests.get("http://service.prerender.io/https://www.sample.com/")

最新更新