提问人:GayLord 提问时间:7/2/2023 最后编辑:GayLord 更新时间:7/2/2023 访问量:42
为什么 requests-html 会部分返回内容?
why does requests-html return content partialy?
问:
我知道,这是因为内容是由 JS 渲染的,但 requests-html 支持 JS,所以这很奇怪
代码本身:
from requests_html import HTMLSession
session = HTMLSession()
session.browser
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36'
headers = {'User-Agent': user_agent}
r = session.get("https://readli.net/chitat-online/?b=439184&pg=1", headers = headers)
r.html.render(timeout = 13)
text = r.html.text
print(text)
答:
0赞
juanpethes
7/2/2023
#1
用于解析 HTML 文档,我让它工作。这个模块可以更容易地获取 p 标签中的内容,这些标签分布在纯 HTML 中一堆嵌套的 <li>、<div> 等标签中。BeautifulSoup
因此,此代码获取第一页上 p 标签内的整个文本(如 URL 中指定)。(注意,我也使用了 instead of,但它应该是相同的 - 我只是没有安装。尝试用替换它,如果它不起作用,您至少知道您有一个解决方案)。&pg=1
requests
requests_html
requests_html
requests_html
requests
我使用语句的原因是会话在使用后会自动关闭。with
这是用换行符分隔打印出来,而不是简单地列出每个 p 标签的一长串。'\n'.join
from bs4 import BeautifulSoup
import requests
user_agent = 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.143 Safari/537.36'
headers = {'User-Agent': user_agent}
with requests.Session() as session:
r = session.get(
"https://readli.net/chitat-online/?b=439184&pg=1",
headers = headers,
)
soup = BeautifulSoup(r.text, 'html.parser')
print('\n'.join(ptag.text for ptag in soup.find_all('p')))
我希望这会有所帮助。
评论