我有一个包含冠状病毒数据的谷歌表。我想使用 worldometers 网站对其进行更新。我不想为代码中数千个单元格中的每一个复制 CSS 选择器。
我尝试获取表格,但每个表格后面都用换行符分隔。我得到了带有以下代码的表格
import bs4
import requests
res = requests.get('https://www.worldometers.info/coronavirus')
soup = bs4.BeautifulSoup(res.text, 'html.parser')
print(len(soup.select('table')))
txt = soup.select('table')[1]
print(txt.text)
有没有办法使我们从表格中获得的内容变成可以放入 excel 的格式,或者将表格 HTML 本身放入 excel 中,以便正确格式化。
最佳答案
我建议你看看以下 python 模块:
我希望这些资源对您有所帮助。
编辑:下面的代码(基于 this )应该允许您检索表。
import pandas as pd, openpyxl, os.path
if os.path.isfile("coronaData.xlsx") == False:
openpyxl.Workbook().save("coronaData.xlsx")
url = "https://www.worldometers.info/coronavirus"
hdr = {
"User-Agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.75 Safari/537.36",
"X-Requested-With": "XMLHttpRequest"
}
#See https://stackoverflow.com/questions/45943179/python-pandas-typeerror-first-argument-must-be-string-or-compiled-pattern#45944194
key = str(frozenset(hdr.items()))
table = pd.read_html(url, key)[0]
table.to_excel("coronaData.xlsx")
但是,我一直偶然发现错误
urllib.error.HTTPError: HTTP Error 403: Forbidden
,这可能可以通过正确的标题(hdr)来解决。也许使用另一个网站会更容易(没有 hdr 和 key 变量;例如 Wikipedia )。
关于python-3.x - 我如何获得一张表格并将其放入 Excel 中而无需长代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61560648/