Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python和BeautifulSoup进行网页抓取_Python_Web Scraping_Html Table_Beautifulsoup_Web Crawler - Fatal编程技术网

使用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你想调查一下该网站在正常使用期间的行为,并将其与使用脚本访问时的行为进行比较。这意味着,根据脚本轮询浏览器发出的请求类型。浏览器对脚本的响应类型。以此类推,直到你设法找到那个特定站点的防御。它是如何检测您的脚本的?没有“一站式”的解决方案。每次都可能不同。