【发布时间】:2020-10-14 15:33:01
【问题描述】:
我是 python 和 bs4 的新手。我已经尝试了几个小时使用漂亮的汤和熊猫在几个网页中刮一张桌子。当我抓取 2 个页面时它起作用了,但是当我尝试抓取所有 13 个网页时,我遇到了麻烦。当我将 range 函数从 2 更改为 13 时,代码不会生成 DF 或 CSV 文件。我做错了什么?
dfs=[]
for page in range(13):
http = "http://websitexample/Records?year=2020&page={}".format(page+1)
url = requests.get(http)
soup = BeautifulSoup(url.text, "lxml")
table = soup.find('table')
df_list = pd.read_html(url.text)
df = pd.concat(df_list)
links = []
for tr in table.find_all("tr"):
trs = tr.find_all("td")
for each in trs:
try:
link = each.find('a')['href']
links.append(link)
except:
pass
df['Link']= links
dfs.append(df)
final_df = pd.concat(dfs)
final_df.to_csv("NewFileAll13.csv",index=False,encoding='utf-8-sig')
我收到错误消息:
值错误:值的长度与索引的长度不匹配。
我非常感谢您提供的任何建议。谢谢!
【问题讨论】:
-
你能分享实际的网址吗?
标签: python pandas loops web-scraping beautifulsoup