BS4:AttributeError:'NoneType'对象没有属性'text'

时间:2018-09-04 15:10:42

标签: python-3.x

我在尝试爬取某个职位发布网站时遇到问题。首先,我的网址在CSV文件“ urls.csv”中

通常,代码运行良好,但是有时我会收到此错误:“ AttributeError:'NoneType'对象没有属性'text'”,有时在1次迭代之后,有时是在30次之后。如果问题出在假设i = 230,如果我再次运行它,它将解析该url,然后在进行一些迭代后再次停止。

有人可以建议吗? 谢谢!

此外,该错误发生在line 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!")

1 个答案:

答案 0 :(得分:1)

使用您提供的一些随机网址,我尝试:

.jar

输出:

- build/libs/myApp-*.jar

Traceback非常清楚,向您显示了在找不到任何内容的情况下尝试将with open('urls.csv', 'r') as f: reader = csv.reader(f) pages = list(reader) for counter, url in enumerate(pages): print(counter, ''.join(url)) page_response = requests.get(''.join(url)) print(page_response) soup = BeautifulSoup(page_response.content, 'html.parser') print(soup.body.div.find('div',class_='jobsearch-JobComponent-description icl-u-xs-mt--md')).text 转换为0 https://be.indeed.com/rc/clk?jk=39582947a2d91970&fccid=adb55a49f6636f0e&vjs=3 <Response [200]> None --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-511-2b829cd9fc45> in <module>() 4 print(page_response) 5 soup = BeautifulSoup(page_response.content, 'html.parser') ----> 6 print(soup.body.div.find('div',class_='jobsearch-JobComponent-description icl-u-xs-mt--md')).text 7 8 AttributeError: 'NoneType' object has no attribute 'text' 的问题。至于为什么相同的URL有时仅具有此类,为什么它不是相同的URL或不是总是包含相同元素的动态页面。