url = 'http://www.sac.net.cn/' # 伪装成Mozilla浏览器,解决反爬虫 user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' # 生成属性字典 directory = {'User-Agent': user_agent} # 获取目标网站的HTML页面 response = requests.get(url, headers=directory) # 对HTML进行解析, .content 属性可以将tag的子节点以列表的方式输出 bs = BeautifulSoup(response.text, 'html.parser') #print response.text title = bs.find('title').string print title
这是一开始的代码,当运行的时候就会出现一堆乱码。类似于这样:<title>è¡ä¸å¨æ-ä¸å½è¯å¸ä¸åä¼</title>
查看了网页之后才知道这是因为网页是使用的utf-8编码的。如果使用的是谷歌浏览器,直接点击F12即可查看。否则直接右键后检查元素或者使用查看网页的源代码。
在网页的源代码的头文件最上面,我们可以看到文本的格式。charset=utf-8
所以在使用爬虫爬取内容时,应该在获取到网页的HTML页面和使用bs4解析页面之间,添加一句response.encoding='utf-8' 目的是告诉编辑器这段文本是以utf8方式编码 所以要以utf8方式解码。
添加后编译成功,就会出现想要的页面了。