Need to clean web scraped data using python
我正在尝试编写用于从 http://goldpricez.com/gold/history/lkr/years-3 抓取数据的代码。我写的代码如下。该代码有效,并给了我预期的结果。
1
2 3 4 5 6 7 |
import pandas as pd
url ="http://goldpricez.com/gold/history/lkr/years-3" df = pd.read_html(url) print(df) |
但结果是一些不需要的数据,我只想要表中的数据。请帮我解决这个问题。
这里我添加了带有不需要数据的输出图像(红色圆圈)
1
2 3 4 5 6 7 8 9 |
import pandas as pd
url ="http://goldpricez.com/gold/history/lkr/years-3" df = pd.read_html(url)# this will give you a list of dataframes from html print(df[3]) |
您使用
1
2 3 4 5 6 7 |
import pandas as pd
url ="http://goldpricez.com/gold/history/lkr/years-3" df = pd.read_html(url)[3] print(df) |
为了速度,你可以使用
为此使用 BeautifulSoup,下面的代码可以完美运行
1
2 3 4 5 6 7 8 9 |
import requests
from bs4 import BeautifulSoup url ="http://goldpricez.com/gold/history/lkr/years-3" r = requests.get(url) s = BeautifulSoup(r.text,"html.parser") data = s.find_all("td") data = data[11:] for i in range(0, len(data), 2): print(data[i].text.strip()," ", data[i+1].text.strip()) |
使用 BeautifulSoup 的另一个优点是它比你的代码更快
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/python/268030.html