如何在Python中从网页内的链接获取数据?

如何在Python中从网页内的链接获取数据?,python,pandas,web-scraping,Python,Pandas,Web Scraping,我需要从网站收集数据,并使用pandas将其存储在数据框中。为此,我使用下面的代码并非常容易地获取数据- import pandas as pd import requests url = "https://webgate.ec.europa.eu/rasff-window/portal/?event=notificationsList&StartRow=" link = requests.get(url).text df = pd.read_html(link)

我需要从网站收集数据,并使用pandas将其存储在数据框中。为此,我使用下面的代码并非常容易地获取数据-

import pandas as pd
import requests

url = "https://webgate.ec.europa.eu/rasff-window/portal/?event=notificationsList&StartRow="

link = requests.get(url).text
df = pd.read_html(link)
df = df[-1]

但是,如果您注意到在表格中,网页每一行的最右侧都有一个名为“Details”的超链接。我还想将超链接中的数据添加到数据框中的每一行。我们如何做到这一点?

正如石秀峰所建议的,BeautifulSoup更适合您的问题,但如果您仍想继续使用当前代码,则必须使用正则表达式提取URL并将其添加为如下列:

import pandas as pd
import requests

url = "https://webgate.ec.europa.eu/rasff-window/portal/?event=notificationsList&StartRow="

link = requests.get(url)

link_content = str(link.content)
res = re.findall(r'(<tbody.*?>.*?</tbody>)', link_content)[0]
res = re.findall(r'(<a href=\"(.*?)\">Details\<\/a\>)', res)
res = [i[1] for i in res]

link_text = link.text
df = pd.read_html(link_text)
df = df[-1]

df['links'] = res
print(df)
将熊猫作为pd导入
导入请求
url=”https://webgate.ec.europa.eu/rasff-window/portal/?event=notificationsList&StartRow="
link=requests.get(url)
link\u content=str(link.content)
res=re.findall(r'(.*),链接内容)[0]
res=re.findall(r'(细节\),res)
res=[i[1]表示res中的i]
link\u text=link.text
df=pd.read\u html(链接\u文本)
df=df[-1]
df['links']=res
打印(df)

希望这能解决您的问题。

Beauty soup packge更适合做这种微妙的操作谢谢@aditya-k的回复,但添加链接栏并不是问题所在。问题是如何循环通过链接从该链接获取一些数据并将其添加到初始数据帧中。请让我知道我可以研究的任何特定beautifulsoup组件。那么为什么您没有在问题中描述实际问题?如果不清楚,请道歉,但清楚地写着我们希望从超链接添加数据。现在,我在问题中加入了“在超链接内”这句话,这一点已经说得很清楚了。