我正在抓取来自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()
答案 0 :(得分: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