新手,在学习python爬虫,环境是python3.4,想爬取人民日报评论员文章,现在只怕去了一个网页,代码如下,
import requests
from bs4 import BeautifulSoup
import re
myUrl = "http://cpc.people.com.cn/pinglun/n1/201/0613/c78779-28428425.html"
response = requests.get(myUrl)
soup = BeautifulSoup(response.text, "lxml", from_encoding="gbk")
print(soup.title.string.encode('ISO-8859-1').decode('gbk'))
for a in soup.find_all():
print(a.string.encode('ISO-8859-1').decode('gbk'))
网页上出错的源代码如下:
《 人民日报 》( 2016年06月13日 01 版)
我的出错提示如下:
Traceback (most recent call last):
File "pa_chong_lx.py", line 21, in
print(a.string.encode('ISO-8859-1').decode('gbk'))
AttributeError: 'NoneType' object has no attribute 'encode'
原因分析:
我查找的关键词是text-indent: 2em; display: block;" id="paper_num">《 人民日报 》( 2016年06月13日 01 版) 格式与前边的主题文章代码不一样,所以出错,求解答怎么改。
新手,因为编码的问题卡了好久,感觉一步一个坑,步步是坑!python虽然简单,但也正是简单,我不知道哪里出错了,或者是知道错误但不知道怎么改正。
Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
找到一个公共的元素,然后用正则来筛选数据吧
报错原因NoneType类没有encode属性,说明你用soup.find_all()没有匹配到括号内的参数,你试试先匹配一下tag,再匹配style,可能会找到原因,实在不行上正则