[英]Web-scraping through a list using BeautifulSoup
我需要获取以下网站列表的所有链接(从 dataframe 列转换为列表):
urls = df['URLs'].tolist()
将每个 url 保存在原始数据集副本中的新列 ( Links
) 中。
要从这些网站之一获取信息,我正在使用:
http = httplib2.Http()
status, response = http.request('https://www.farmaciairisdiana.it/blog/') # for example
for link in BeautifulSoup(response,'html.parser', parse_only=SoupStrainer('a')):
if link.has_attr('href'):
print(link['href'])
这段代码运行良好(我测试了几个案例)。
如何迭代每个这些 url,将结果保存到新列中?
您可以迭代列表urls
并将每个链接保存到结果列表。 然后创建新的 dataframe 或将此列表添加到新列。
例如:
http = httplib2.Http()
all_links = []
for url in urls: # `urls` is your list from the question
status, response = http.request(url)
for link in BeautifulSoup(response,'html.parser', parse_only=SoupStrainer('a')):
if link.has_attr('href'):
all_links.append(link['href'])
new_df = pd.DataFrame({'Links': all_links})
print(new_df)
# or
#df['Links'] = all_links
编辑:要创建新的 dataframe,您可以使用此示例:
http = httplib2.Http()
all_links = []
for url in urls: # `urls` is your list from the question
status, response = http.request(url)
l = []
all_links.append({'URLs': url, 'Links': l})
for link in BeautifulSoup(response,'html.parser', parse_only=SoupStrainer('a')):
if link.has_attr('href'):
l.append(link['href'])
new_df = pd.DataFrame(all_links)
print(new_df)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.