【发布时间】:2019-10-15 05:42:53
【问题描述】:
我通过requests 获得了 html 源代码,我想将它们解析为打击(sudo 代码):
import requests
from bs4 import BeautifulSoup
response = requests.get('https://www.example.com', headers=headers, params=params)
html_doc = response.text
soup = BeautifulSoup(html_doc, 'html.parser')
item_ls = []
for elem in soup.select('.items'):
item_ls.append(elem.text)
但我不确定BeutifulSoup obj.请求数据,每次我通过for loop(尤其是在执行elem.text 时)迭代元素,或者我可以使用 obj.作为本地html源,不像selenium。
我需要尽量减少请求的数量以避免被阻止。
【问题讨论】:
-
在您的代码中发生 HTTP 请求的唯一时间是在
requests.get调用中。其他一切都是本地的。 -
@rdas 感谢您的回答!我在哪里可以找到相关的事实?我在官方文档中找不到。
-
Bs4 是一个 html 解析器。一旦您从
requests.get获得 html,一切都是本地的 - 因为您已经拥有整个 HTML。 Selenium 可能会进行额外的 HTTP 调用,因为 webdriver 还可以执行 javascript - 这会进行更多的 http 调用。
标签: python-3.x beautifulsoup python-requests