2017-05-15 11 views
1

私はhttp://www.sfma.org.sg/member/info/a-linkz-marketing-pte-ltdページ遭遇なしタイプのリターン

のようなウェブサイトから企業プロファイル情報をクロールしていると私は、カテゴリのコンテンツの前にウェブサイトに会社名からコンテンツをしたいからコンテンツをスクラップ。私はいくつかのコードを書いていますが、None型エラーを返します。

誰でもコードを見て、何が間違っているのを見るのに役立つでしょうか?どうもありがとう。

import sys 
import csv 
import urllib 
import requests 
from bs4 import BeautifulSoup 
import time 
import datetime 
from random import randint 
import numpy as np 
import pandas as pd 


fi = open('Input_List.csv', 'r') 
#readers = list(csv.reader(fi)) 
readers=csv.reader(fi) 
#print(readers) 
df = [] 

for reader in readers: 
    #print(str(reader)[1:-1]+"\n") 
    url=str(reader)[2:-2] 
    request = requests.session() 
    htmlpage = requests.get(url) 
    #print("status code: "+ str(htmlpage.status_code)) 
    if htmlpage.status_code != 200 : 
     break # something went wrong # 
    soup = BeautifulSoup(htmlpage.text,'lxml') 
    for result_table in soup.**findall**("div", {"class": "w3-container"}): 
     #content=result_table.find('p') 
     #print(result_table) 
     content=result_table.text 

     if(content.find("Website") > -1): 
      index=content.find("Website") 
      content=content[:content.find("\n",index)] 
      #print(content) 
      df=np.append(df,content) 
      break 
     #print(content) 
     df=np.append(df,str(content)) 
     #print(df) 
df1 = pd.DataFrame(df) 
df1.to_csv("SFMA.csv",index=False,encoding='utf-8') 
     # #df.savetxt("SFMA.csv", index=False,encoding='utf-8') 
# #df.save("SFMA.csv") 
fi.close() 

答えて

1

あなたはタイプミスをしました。 soup.findall("div", {"class": "w3-container"}):soup.find_all("div", {"class": "w3-container"}):

そこにはfindall方法は、BeautifulSoupでませんので、それが動作しないとNoneを返すべきです。

企業名からウェブサイトにデータを取得するには、これを行うことができます。

for result_table in soup.find_all("div", {"class": "w3-container"}): 

    content=result_table.text 
    index=content.find("Website") 

    if(index > -1): 

     content=content[:content.find("\n",index)] 
     print(content) 
     break 
+0

ありがとう!私はどのようなタイプミスをしましたか?ところで、index = content.find( "Website") if(index> -1): – Sun

+0

@Sun 'content'が' string'であることを親切に説明できますか? 「ウェブサイト」という言葉の索引を探している。そのような単語がない場合は '-1'を返します。 –

+0

ICIC、ありがとうございました – Sun

関連する問題