【发布时间】:2019-02-09 16:01:58
【问题描述】:
我在尝试抓取某个职位发布网站时遇到问题。首先,我的网址在 CSV 文件“urls.csv”中
通常代码运行良好,但有时我会收到此错误:“AttributeError: 'NoneType' object has no attribute 'text'”,有时在 1 次迭代之后,有时在 30 次之后。如果问题出在假设 i=230,如果我再次运行它,它会很好地解析该 url,并在一些迭代后再次停止。
有人可以建议吗? 谢谢!
另外,错误发生在 textoffer = ......行上
编辑:链接到 csv:https://github.com/DonCheiron/Scraping-Be.Indeed/blob/master/urls.csv
import bs4 as bs
import urllib.request
import csv
with open('C:/Users/******/Desktop/urls.csv', 'r') as f:
reader = csv.reader(f)
pages = list(reader)
for i in range (0,300):
page = ''.join(map(str, pages[i]))
print('Working on ' + str(i)+ "...")
sauce = urllib.request.urlopen(page).read()
soup =bs.BeautifulSoup(sauce,'lxml')
textoffer = soup.body.div.find('div',class_='jobsearch-JobComponent-description icl-u-xs-mt--md').text
file = open(str(i)+ '.txt','w')
file.write(textoffer)
file.close()
print(str(i) + " Done!")
【问题讨论】:
-
您需要使用
try和expection来跳过for 循环中的错误而不是它之外的错误。 -
尝试将
withstmt 与forstmt 分开。 -
似乎某些 URL 没有
'class'组件,因此它返回 Nonetype。您可能希望添加异常,以便代码在包含class组件的链接上运行。 -
谢谢@Soumithri Chilakamarri。但是如果我第二次运行它怎么会找到类组件。另外,我手动检查了一下,确实有类组件。
标签: python-3.x