快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

Python中requests库爬取网站乱码的解决方法

Python中requests库爬取网站乱码的解决方法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

公司主营业务:成都网站制作、成都网站设计、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联公司是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联公司推出繁昌免费做网站回馈大家。

【写在前面】

在用requests库对自己的CSDN个人博客(https://blog.csdn.net/yuzipeng)进行爬取时,发现乱码报错(\xe4\xb8\xb0\xe5\xaf\x8c\xe7\x9),如下图所示:

Python中requests库爬取网站乱码的解决方法

网上 查找了一些方法,以为是遇到了网站加密处理。后来发现 通过F12还 是能获取网页的元素,那么有什么办法能规避乱码问题呢?答案是:用selenium.

【效果如下】

Python中requests库爬取网站乱码的解决方法

【示例代码】

# coding=utf-8# @Auther : "鹏哥贼优秀"# @Date : 2019/10/16# @Software : PyCharm
from selenium import webdriver
url = 'https://blog.csdn.net/yuzipeng'driver = webdriver.Chrome("F:\\Python成长之路\\chromedriver.exe")driver.get(url)urls = driver.find_elements_by_xpath('//div[@class="article-item-box csdn-tracking-statistics"]')blogurl = ['https://blog.csdn.net/yuzipeng/article/details/' + url.get_attribute('data-articleid') for url in urls]titles = driver.find_elements_by_xpath('//div[@class="article-item-box csdn-tracking-statistics"]/h5/a')blogtitle = [title.text for title in titles]myblog = {k:v for k,v in zip(blogtitle,blogurl)}for k,v in myblog.items():    print(k,v)driver.close()

【知识点】

1、selenium使用

基本的selenium安装方法、使用方法

(https://blog.csdn.net/yuzipeng/article/details/100179696)

2、推导式使用

(1)列表推导式:[表达式 for 变量 in 列表]    或者  [表达式 for 变量 in 列表 if 条件]

    类似这样就可以实现将for循环的多行程序浓缩到一句代码 中,如

blogtitle = [title.text for title in titles]

而如果用for循环写,则需要这样:

blogtitle = []for title in titles:    blogtitle.append(title)

(2)字典推导式:{ key表达式: value表达式 for value in collection if condition }

这样的写法,一般用于key和value能相互转换;但是如果key和value是完全不同的列表,那就需要用zip对key/value进行整合。

myblog = {k:v for k,v in zip(blogtitle,blogurl)}

如果对zip函数不熟悉,可以用下面的例子来 介绍下。

a = ['a', 'b', 'c']b = [1, 2, 3]c = {k: v for k, v in zip(a, b)}print(c) 结果是:{'a': 1, 'b': 2, 'c': 3}

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。


分享文章:Python中requests库爬取网站乱码的解决方法
URL链接:http://6mz.cn/article/ggesdh.html

其他资讯