我不熟悉Python抓取功能,需要一些帮助。在BI咨询公司实习期间,我正在做自己的第一个项目,并且正在构建要在Qlik Sense中使用的数据模型。
我设法从Transfermarkt刮取了名称和值,但现在我想刮取俱乐部和国家/地区的标题(均带有图片)。图像抓取是另一回事(据我所知,需要一套完全不同的代码)。但是我想要标题,例如“法国”。有人可以指出我正确的方向吗?
代码已通过Pablos的响应进行了更新。现在我得到了错误:
追踪(最近通话):文件“ c:/ Users / cljkn / Desktop / Python scraper github / .vscode / Scraping Transfermarkt.py”,第33行,在df = pd.DataFrame({“ Players”:PlayersList,“ Values”:ValuesList,“ Nationality”:NationalityList})文件“ C:\ Users \ cljkn \ Desktop \ Python scraper github.venv \ lib \ site-packages \ pandas \ core \ frame.py”,第435行,位于init
中mgr = init_dict(数据,索引,列,dtype = dtype)文件“ C:\ Users \ cljkn \ Desktop \ Python scraper github.venv \ lib \ site-packages \ pandas \ core \ internals \ construction.py”,第254行,位于init_dict返回arrays_to_mgr(数组,数据名称,索引,列,dtype = dtype)文件“ C:\ Users \ cljkn \ Desktop \ Python scraper github.venv \ lib \ site-packages \ pandas \ core \ internals \ construction.py”,第64行,在arrays_to_mgr中索引= extract_index(数组)365行,位于extract_index中的文件“ C:\ Users \ cljkn \ Desktop \ Python scraper github.venv \ lib \ site-packages \ pandas \ core \ internals \ construction.py”引发ValueError(“数组必须都具有相同的长度”)ValueError:数组的长度必须相同import requests from bs4 import BeautifulSoup import pandas as pd headers = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.106 Safari/537.36'} page = "https://www.transfermarkt.com/spieler-statistik/wertvollstespieler/marktwertetop" pageTree = requests.get(page, headers=headers) pageSoup = BeautifulSoup(pageTree.content, 'html.parser') Players = pageSoup.find_all("a", {"class": "spielprofil_tooltip"}) Values = pageSoup.find_all("td", {"class": "rechts hauptlink"}) Nationality = pageSoup.find_all("td", {"class": "flaggenrahmen"}, {"title"}) for nat in Nationality: img = nat.find('img') title = img.get('title') PlayersList = [] ValuesList = [] NationalityList = [] for i in range(0,25): PlayersList.append(Players[i].text) ValuesList.append(Values[i].text) NationalityList.append(Nationality[i].text) NationalityList.append('title') df = pd.DataFrame({"Players":PlayersList,"Values":ValuesList,"Nationality":NationalityList}) df.head() df.to_csv (r'C:\Users\cljkn\Desktop\Python scraper github\export_dataframe.csv', index = False, header=True) print(df)
在编码或原始资料方面的任何直接帮助,将不胜感激。
我不熟悉Python抓取功能,需要一些帮助。在BI咨询公司实习期间,我正在做自己的第一个项目,并且正在构建要在Qlik Sense中使用的数据模型。我是...
通过find_all,您将获得类“ flaggenrahmen”的“ td”的列表。如果您想要标题,则需要在“ Nationality”对象和.get('title')上循环。
for item in soup.findAll("img", class_="flaggenrahmen", title=re.compile("^(?!http).*")):
print(item.get("title"))