2017-12-02 299 views
1

我想寫一些代碼來刮一個網站的鏈接列表,然後我會做一些事情之後。我發現一些代碼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']) 

當我通過一個URL,我得到以下錯誤

cannot concatenate a non-NDFrame object 

任何想法,我錯了?

回答

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()) 
+0

感謝容易,當你知道如何 – SeagullWardy