我正在尝试编写一些代码来抓取一个网站以获取链接列表,之后我会做其他事情。我找到了一些我想要调整的代码here,以便不是打印列表而是将其添加到系列中。我的代码如下:
import pandas as pd
from bs4 import BeautifulSoup
from urllib.parse import urljoin
user_agent = {'User-agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0'}
linksList = pd.Series()
def process(url):
r = requests.get(url, headers=user_agent)
soup = BeautifulSoup(r.text, "lxml")
for tag in soup.findAll('a', href=True):
tag['href'] = urljoin(url, tag['href'])
linksList.append(tag['href'])
当我传递网址时,我收到以下错误
cannot concatenate a non-NDFrame object
知道我哪里错了吗?
答案 0 :(得分:2)
.append()
method of a Series
object期望另一个Series
对象作为参数。换句话说,它用于将Series
连接在一起。
在您的情况下,您只需将href
值收集到列表中并初始化Series
:
def process(url):
r = requests.get(url, headers=user_agent)
soup = BeautifulSoup(r.text, "lxml")
return [urljoin(url, tag['href']) for tag in soup.select('a[href]')]:
links_list = pd.Series(process())