Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.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 3.x 无法使用beautifulsoup刮取表中的所有行_Python 3.x_Web Scraping_Beautifulsoup - Fatal编程技术网

Python 3.x 无法使用beautifulsoup刮取表中的所有行

Python 3.x 无法使用beautifulsoup刮取表中的所有行,python-3.x,web-scraping,beautifulsoup,Python 3.x,Web Scraping,Beautifulsoup,我试着从网站上抓取表格行,以获得有关科罗纳病毒传播的数据。但它只返回几行,在我的例子中是15行。我不能把所有的行都刮干净。该表在网站上不完全可见,需要滚动查看该表的内容。请帮忙 导入请求 从bs4导入BeautifulSoup URL=”https://google.com/covid19-map/?hl=en" r=请求。获取(URL) soup=BeautifulSoup(r.content,'html5lib') all_rows=soup.findAll('tr',attrs={'cla

我试着从网站上抓取表格行,以获得有关科罗纳病毒传播的数据。但它只返回几行,在我的例子中是15行。我不能把所有的行都刮干净。该表在网站上不完全可见,需要滚动查看该表的内容。请帮忙

导入请求
从bs4导入BeautifulSoup
URL=”https://google.com/covid19-map/?hl=en"
r=请求。获取(URL)
soup=BeautifulSoup(r.content,'html5lib')
all_rows=soup.findAll('tr',attrs={'class':'A5V3jc'})
对于范围内的i(len(所有_行)):
#获取图像链接
img\u link=所有行[i]。查找('img')
如果img_链接!=无:
打印(img_链接['src'])
#获取名称字段
name=所有_行[i]。查找('span')
如果(名称!=无):
打印(name.text,end=“\t”)
#获取剩余数据
剩余的_条目=所有的_行[i]。findAll('td',attrs={'class':'umsnd HAChlc'})
对于剩余的_条目中的j:
如果(j!=无):
打印(j.text,end=“\t\t\t”)
打印(“\n\n”)
将熊猫作为pd导入
从selenium导入webdriver
从selenium.webdriver.firefox.options导入选项
选项=选项()
options.add_参数('--headless')
driver=webdriver.Firefox(options=options)
driver=webdriver.Firefox(options=options)
驱动程序。获取(“https://google.com/covid19-map/?hl=en")
df=pd.read\u html(driver.page\u source)[1]
df.to_csv(“Data.csv”,index=False)
driver.quit()
输出:


在禁用java脚本的情况下,尝试在浏览器中加载页面,您将看到该页面只列出了表中的一小部分,直到奥地利,然后该站点使用javascript事件去检索其余数据并填充表中的更多内容。BS不会触发JS事件,因此您只能看到相同的数据,就像您在浏览器中加载了java脚本DisabledHanks以获取答案一样。你能帮我找到标记的src属性中存在的旗帜图像的链接吗?@TanishqVyas根据你提出的问题,你已经收到了答案。如果你有其他问题,你必须打开新的问题。以下方法不再有效。即使这样,也会返回表中的一些行,但不是所有行。我请求你更新你的答案。这将是非常有帮助的。好吧,我以前花了时间为您编写代码,它的工作正如预期的那样!现在,您刚刚取消接受答案并请求更新代码!你真的认为这合乎逻辑吗?您可以打开一个单独的问题,说明网站已更新,代码不可用,但只需取消接受您收到的解决方案即可!那真是太好了confuse@TanishqVyas这里的用户在自己的空闲时间免费回答问题——当事情发生变化时,他们不需要或没有义务保持答案的最新状态——这尤其适用于像网络抓取这样的事情。看来这个答案以前确实有用,所以如果现在不行,那不是回答者的错。如果需要另一个解决方案,那么最好问另一个问题,可能链接到此问题以供参考,并包括您当前的结果与预期的结果,以及您目前遇到的困难的具体细节。