繁体   English   中英

web 用 python 和 BeautifulSoup 刮

[英]web scraping with python and BeautifulSoup

我正在尝试从 web 站点中提取数据,并且数据位于表中:

url=requests.get("xxxxx")
soup =BeautifulSoup(url.content)
table=soup.find_all("table")[0]
rows = table.find_all('tr')

我尝试了这段代码,但它只提取了 42 行并且源表包含 220 行? 有人告诉我如何解决这个问题。

欢迎。
2种可能性。 Javascript 或网站安全。

requests与 javscript 无关,不执行任何 javascript 代码。 您将需要一个更接近于模仿浏览器的无头浏览器解决方案( selenium很受欢迎),尤其是在涉及 javascript 时。

许多网站不想被抓取并采用不同的方法来防止它。 最简单的形式是检查客户端的User-Agent值(您的Python脚本)或速率限制(每秒 20k 刷新不是人为的)。 例如,如果User-Agent不是已知值,它的行为会有所不同(很少或没有数据)。 其他forms的防御都比较复杂。 例如尝试在“浏览器”上播放音频或轮询“浏览器”的分辨率。 为此,您需要调查网站的行为。 这可能需要时间。 您可以从浏览器开发工具的“ Networking ”选项卡(Firefox 上的 F12)或Zap 代理开始,以获得更精细的控制。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM