AttributeError:'NoneType'对象在写入文件时没有属性'encode'?

问题描述 投票:0回答:2

我想抓取新内容并将其写入文件但是它给'NoneType'对象没有属性'encode'

#!/usr/bin/python
# -*- coding: utf-8 -*-

import urllib2 as urllib
from bs4 import BeautifulSoup
import codecs
link = 'http://www.hindustantimes.com/delhi-news/delhi-man-shoots-    girlfriend-in-leg-after-argument-blames-snatchers/story-   CzA8JmgafX7tNUroilovoO.html'
reqlink = urllib.Request(link)
page = urllib.urlopen(reqlink)
soup = BeautifulSoup(page,'html.parser') 

fw = codecs.open('hlink7.txt','w')

var = soup.findAll('p')

for i in var:
      fw.write(i.string.encode('utf-8'))

怎么解决?

python web-scraping beautifulsoup
2个回答
0
投票

该异常表示您正在对象encode上调用方法None。因此,在调用方法之前,应首先检查对象。修改您的代码,如下所示:

for i in var:
      if i.string:
            fw.write(i.string.encode('utf-8'))

0
投票

如果你想编码p标签的内容,那么你可能不得不尝试使用text而不是string

像这样,

for i in var:
      fw.write(i.text.encode('utf-8'))
© www.soinside.com 2019 - 2024. All rights reserved.