解析活动不稳定,得到一些随机结果

时间:2017-03-22 08:16:24

标签: python html parsing beautifulsoup urllib2

以下是代码:

# -*- coding: utf-8 -*-
import urllib2
from bs4 import BeautifulSoup

with open('/users/Rachael/Desktop/CheckTitle.csv', 'r') as readcsv:
    for row in readcsv.readlines():
        try:
            openitem = urllib2.urlopen(row).read()
            soup = BeautifulSoup(openitem, 'lxml')
            print soup.head.find('title').get_text()

        except urllib2.URLError:
            print 'passed'
            pass

我得到了以下结果:

(A):

passed
贝贝网京外裁员10%:团队要保持狼性和危机感_新浪财经_新浪网
垂直电商贝贝网被曝裁员 回应称只是10%人员优化_新浪财经_新浪网

(B):

passed
Traceback (most recent call last):
  File "C:/Users/Rachael/PycharmProjects/untitled1/GetTitle.py", line 10, in 
<module>
    print soup.head.find('title').get_text()
AttributeError: 'NoneType' object has no attribute 'find'

(C):

passed
贝贝网京外裁员10%:团队要保持狼性和危机感_新浪财经_新浪网
Traceback (most recent call last):
  File "C:/Users/Rachael/PycharmProjects/untitled1/GetTitle.py", line 10, in <module>
    print soup.head.find('title').get_text()
AttributeError: 'NoneType' object has no attribute 'find'

我随机获得这三种结果。

如果我做了soup.title OR soup.title.text或者是soup.title.string,它将返回相同/类似的错误。

请帮忙!

我发现这很难描述,所以如果这是一个重复,请给我链接到类似的帖子。

谢谢!

1 个答案:

答案 0 :(得分:0)

'NoneType' object has no attribute是在没有此对象的结果时发生的错误,请尝试仅打印print soup.head.find('title')标题而不打印.text它应返回类似'[]'的内容或“无”
回答 :在其中一个网站上没有实际标题标记或某种 bot 保护在那个文件中。