为了可以爬取网页信息,必须要设置头信息headers,
headers = (“User-Agent”,“你的浏览器信息”)
opener = urllib.request.build_opener()
opener.addheaders = [headers]
接着有两种方式:
第一种:
将opener安装为全局
urllib.request.install_opener(headers)
然后就可以使用
data = urllib.request.urlopen(url).read().decode(“utf-8”,“ignore”)
第二种:
将opener安装为全局(不需要,有也不影响)
可以直接data = opener.open(url).read().decode(“UTF-8”,“ignore”)
那么问题来了,在第一种情况下我想用open()打开文件:
fh = open(“C:\Users\Administrator\Desktop\123.txt”,“wb”)
就会报错:AttributeError: ‘tuple’ object has no attribute ‘open’
翻译后就是:“tuple”对象没有属性“open”,
tuple过来就是元组
和语句的顺序没有关系,不管fh这句在data这句前还是后,都报一样的错。
我也不知道是什么原因,我换了第二种方法,可以正常打开文件。
记录这个问题,如果以后解决了,再更新原因。