用python和BeautifulSoup进行网络搜刮。

问题描述 投票:0回答:1

我试图从一个网站提取数据,数据是在一个表中。

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

我试过这段代码,它可以工作,但只有42行被提取,源表包含220行,有人告诉我如何解决这个问题。

python web-scraping html-table beautifulsoup web-crawler
1个回答
1
投票

欢迎你的加入。2种可能。Javascript或网站安全问题。

requests 是javscript不可知,不执行任何javascript代码。你需要一个无头浏览器的解决方案(selenium 是流行的),更接近模仿浏览器,尤其是在javascript方面。

许多网站不希望被搜刮,并采用不同的方法来防止它。最简单的方法是检查 User-Agent 客户价值(您的 Python 脚本)或速率节流(一秒钟刷新2万次不是人干的)。例如,如果是在 User-Agent 是别的什么 已知值,它会有不同的表现(很少或没有数据)。其他形式的防御更复杂。如试图在你的 "浏览器 "上播放音频或轮询你 "浏览器 "的分辨率。为此,你需要调查网站的行为。这可能需要时间。你可以从以下两个方面入手 Networking 浏览器的开发工具选项卡(火狐浏览器为F12)或 Zap代理 以获得更精细的控制。

© www.soinside.com 2019 - 2024. All rights reserved.