【发布时间】:2019-08-08 17:57:24
【问题描述】:
使用 requests 和 urllib3 我抓取了 https://www.immowelt.de/liste/berlin/ladenflaechen 的“不完整”源代码。源代码不完整,因为它只包含 4 个列出的项目,而不是 20 个。查看生成的源代码,我们发现以下提示是“加载”/分页问题(第 2191 行)。我设法获得的完整源代码可以在这里查看:https://pastebin.com/FgTd5Z2Y
<div class="error alert js-ErrorGeneric t_center padding_top_30" id="js-ui-items_loading_error" style="display: none;">
Unbekannter Fehler, bitte laden Sie die Seite neu oder versuchen Sie es später erneut.
</div>
翻译错误文本:未知错误,请重新加载页面或稍后重试。
出现该错误后,将显示用于转到下一页的源代码。遗憾的是,第 1 页和第 2 页之间存在 16 个项目。
我试图找到一个更深入地研究请求库和 urllib3 的解决方案,以找到任何有用的东西。因此我尝试了一个流而不是简单的“get”。遗憾的是它对我没有任何帮助。
import requests
import urllib3
# using requests
url = "https://www.immowelt.de/liste/berlin/ladenflaechen"
source_code = requests.get(url)
plain_text = source_code.text
soup = BeautifulSoup(plain_text, features="html.parser")
# using urllib3
http = urllib3.PoolManager()
r = http.request('GET', 'https://www.immowelt.de/liste/berlin/ladenflaechen')
rip = r.data.decode('utf-8')
我希望获得页面上的所有项目,但只获得了前 4 个。源代码似乎表明,简单的请求命令不会像在浏览器中那样加载整个源代码。
【问题讨论】:
标签: web-scraping python-requests python-3.6 urllib3