2017-05-03 58 views
1

通過的同一品種大約有十幾個問題,巡航,並諮詢了同事後,我決定,我需要一些專家的見解AttributeError的:「功能」對象有沒有屬性「find_all」美麗的湯

with open("c:\source\list.csv") as f: 
    for row in csv.reader(f): 
    for url in row: 
     r = requests.get(url) 
     soup = BeautifulSoup(r.content, 'lxml') 
     tables = soup.find('table', attrs={"class": "hpui-standardHrGrid-table"}).append 
     for rows in table.find_all('tr', {'releasetype': 'Current_Releases'}): 
      item = [].append 
      for val in row.find_all('td'): 
      item.append(val.text.encode('utf8').strip()) 
      rows.append(item) 
     headers = [header.text for header in tables.find_all('th')].append 
     rows = [].append 
     print (headers) 

所以我在這裏是:一個csv文件,其中有30個URL。我首先將它們轉儲到Soup中以獲取它的所有內容,然後將特定的HTML元素(表)綁定到tables變量。在此之後,我試圖從這些表中拉出特定的行和標題。

根據我的大腦的邏輯思維,它應該工作,而是我得到這個:

Traceback (most recent call last): 
    File "<stdin>", line 7, in <module> 
AttributeError: 'function' object has no attribute 'find_all' 

7號線是

for rows in table.find_all('tr', {'releasetype': 'Current_Releases'}): 

什麼是我們在這裏失蹤?

+1

爲什麼你在'tables = soup.find('table',attrs = {「class」:「hpui-standardHrGrid-table」})末尾加上'.append'? – roganjosh

+1

什麼是「表」?我猜錯了嗎?另外,'[] .append'應該是什麼意思?在嘗試編寫任何代碼之前,請學習一些Python。 – ForceBru

+0

你不可能是一個***洞嗎?我正在學習。無可否認,我是一個絕對的新手,他的任務是創建這個程序。我使用append將30個表追加到一個變量中。 –

回答

2

你對Python語法有一些奇怪的誤解。您的代碼中有四次提到<something>.append;我不確定你的想法是什麼,但append是一種方法,它不僅必須被調用,與(),但它需要一個參數:你正在追加的東西。

因此,例如,該行:

item = [].append 

毫無意義可言;你期待item是什麼?你希望追加什麼?當然你的意思是item = []

在具體情況下,誤差是由於上一行的末尾多餘append的:

tables = soup.find('table', attrs={"class": "hpui-standardHrGrid-table"}).append 

同樣,只是刪除append

+0

噢,謝謝你對追加的瞭解。我被告知使用我的同事追加將多個表結果(從30個URL)附加到單個變量。當我運行的代碼沒有附加在表變量的末尾,它的工作原理,但只從一個表中拉取數據(列表中的最後一個) 我很難相信這是不可能完成的python –

+1

當然這不是不可能實現的;你的問題與Python無關,只是一般的編程邏輯。如果要循環訪問列表中的一堆項目,則需要在循環外部定義該列表,然後將內容附加到循環內的列表中。 –

+0

我希望我對普通Python有更多的瞭解,我被隨意拋棄了,所以即時通訊不得不隨時學習。我對父郵件進行了更新。我刪除了代碼中的附件,現在即時通訊在另一條線上出現全新的錯誤。 –

相關問題