url = 'https://pic.netbian.com/4kdongwu/'
page_text = requests.get(url=url,headers=headers).text
tree = etree.HTML(page_text)
li_list = tree.xpath('//div[@class="slist"]//li')
for li in li_list:
img_src='http://pic.netbian.com'+li.xpath('./a/img/@src')[0]
img_name = li.xpath('./a/img/@alt')[0]+'.jpg'
print(img_name,img_src)
网页编码与pycharm编码冲突,运行后中文显示乱码
尝试了几种解决方案:
1.手动将响应对象的数据编码为’utf-8’
修改前的代码:
page_text=requests.get(url=url,headers=headers).text
修改后的代码:
response = requests.get(url=url,headers=headers)
response.encoding='utf-8'
page_text = response.text
运行结果:
说明改变编码的操作生效了,但还是没有解决乱码的问题
2.找到发生乱码的部分进行iso的encode和decode
在获取图片名称的代码后面加上:
img_name=img_name.encode('iso-8859-1').decode('gbk')
乱码问题解决
3.获取响应对象数据的方式不用text改用content
修改前的代码:
page_text = requests.get(url=url,headers=headers).text
修改为:
page_text = requests.get(url=url,headers=headers).content
乱码问题解决
4. 手动将响应对象的数据编码为’gbk’
response = requests.get(url=url,headers=headers)
response.encoding='gbk'
乱码问题解决
关于gbk与utf-8以及iso-8859-1的相关知识
参见大佬的文章UTF-8和GBK的区别