gpt4 book ai didi

python - 使用 python 抓取数组到数据表

转载 作者:太空宇宙 更新时间:2023-11-03 17:40:45 24 4
gpt4 key购买 nike

我正在努力从 this 抓取数据页面,特别是“所有员工的统计表”。

当我尝试使用 BeautifulSoup 或简单的正则表达式时,我无法提取表格,可能是因为它是嵌套列表或因为换行符,尽管我真的不知道。

这是一些示例代码:

url='http://www.forecasts.org/data/data/PAYEMS.htm'

def get( URL): #getting text from the web
ses = requests.session()
return ses.get(URL).text

htmltext=get(url)

regex = 'Date(.+?)All'
pattern = re.compile(regex)
nonFarm = re.findall(pattern,htmltext)

enter image description here

期望的输出:

[1939-01-01, 29923, 1939-02-01, 30101, ...]

最佳答案

问题在于所需的数据位于 JavaScript 代码内。

我会使用正则表达式来解析 javascript 数组和 literal_eval()将其“加载”到 Python 列表中:

from ast import literal_eval
from pprint import pprint
import re

import requests


url = 'http://www.forecasts.org/data/data/PAYEMS.htm'
with requests.Session() as session:
response = session.get(url)

pattern = re.compile(r"data = google\.visualization\.arrayToDataTable\((.*?)\);", re.MULTILINE | re.DOTALL)
data = pattern.search(response.content).group(1)

data = literal_eval(data)
pprint(data)

打印:

[['Date', 'All Employees: Total nonfarm'],
['1939-01-01', 29923],
['1939-02-01', 30101],
...
['2014-07-01', 138976],
['2014-08-01', 139118]]

关于python - 使用 python 抓取数组到数据表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30588515/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com