使用python和BeautifulSoup进行网页抓取
我试图从网站中提取数据,数据在表中:使用python和BeautifulSoup进行网页抓取,python,web-scraping,html-table,beautifulsoup,web-crawler,Python,Web Scraping,Html Table,Beautifulsoup,Web Crawler,我试图从网站中提取数据,数据在表中: url=requests.get("xxxxx") soup =BeautifulSoup(url.content) table=soup.find_all("table")[0] rows = table.find_all('tr') 我尝试了这段代码,它可以工作,但只提取了42行,源表包含220行? 有人告诉我如何解决这个问题。欢迎。 2种可能性。Javascript或网站安全 请求与脚本无关,不执行任何javascript代码。您需要一个更接近浏览器
url=requests.get("xxxxx")
soup =BeautifulSoup(url.content)
table=soup.find_all("table")[0]
rows = table.find_all('tr')
我尝试了这段代码,它可以工作,但只提取了42行,源表包含220行?
有人告诉我如何解决这个问题。欢迎。2种可能性。Javascript或网站安全
请求
与脚本无关,不执行任何javascript代码。您需要一个更接近浏览器的无头浏览器解决方案(selenium
),尤其是在javascript方面
许多网站不想被刮伤,而是采用不同的方法来防止。最简单的形式是检查客户机的
User-Agent
值(您的Python
脚本)或速率限制(20k刷新一秒不是人工的)。e、 例如,如果用户代理
不是a,那么它的行为会有所不同(很少或没有数据)。其他形式的防御更为复杂。例如尝试在“浏览器”上播放音频或轮询“浏览器”的分辨率。为此,您需要调查站点的行为。这可能需要时间。您可以从浏览器开发工具(Firefox上的F12)的网络选项卡开始,也可以从更精细的控制开始。我使用了selenium的webdriver,但它返回相同的结果。第二种可能是我没有很好地理解我必须做什么?@kloud你想调查一下该网站在正常使用期间的行为,并将其与使用脚本访问时的行为进行比较。这意味着,根据脚本轮询浏览器发出的请求类型。浏览器对脚本的响应类型。以此类推,直到你设法找到那个特定站点的防御。它是如何检测您的脚本的?没有“一站式”的解决方案。每次都可能不同。