IT干货网

Python爬虫遇到的问题

Renyi-Fan 2022年09月17日 编程设计 104 0

页面乱码问题

很多时候你读取的页面编码是utf-8但是内容就是乱码,以下方式通用解决乱码的问题

导包

import requests 

查询当前页面的编码情况

    r = requests.get('https://www.89ip.cn/index_1.html') 
    content = r.content   
    print(r.headers['content-type']) 
    print(r.encoding) 
    print(r.apparent_encoding) 
 

结果

text/html;charset=utf-8
utf-8
utf-8

可以看到是utf-8 但是内容取出来就是乱码,解决办法

def getHtmlAndDealCode(url): 
    urllib3.disable_warnings()  # 去除警告 
    html=requests.get(url,verify=False) 
    code=html.encoding 
    html=html.text 
    html=html.encode(code) 
    html=html.decode('utf-8') 
    # parser = 'html.parser' 
    # soup = BeautifulSoup(html ,parser) 
    # 如果使用BeautifulSoup那么返回soup即可 
    return html 
 

效果演示

    htmlAndDealCode = getHtmlAndDealCode('https://www.89ip.cn/index_1.html') 
    rhtml = html.fromstring(htmlAndDealCode) 
    result = rhtml.xpath('//table/tbody/tr/td') 

爬取页面获取不到某些内容

一般遇到这种情况,坑操蛋比如下面这种情况
在这里插入图片描述
这种方式会我们爬虫是爬取不到的,因为这里的他是利用js的加密和解密后期在通过js渲染上去的,而我们爬虫爬取出来的只能是document.write(window.atob("MTA2Ljc1LjIyNi4zNg=="));而真实的数据我们拿去不到的,解决办法,使用python自动化selenium这个技术是能模拟真人操作的,只要是你人进入这个页面能看到的数据那么使用selenium都能获取到,但是就是比爬虫慢很多处理起来也有些费劲,但是这些都是难不倒我们的,勇敢牛牛不怕困难,加油

我这里就贴一段演示代码,具体细节不提供代码有点多
第一个案例: 刷新视频播放量至于谁的o( ̄︶ ̄)o保密
在这里插入图片描述
第二个案例: 爬取指定网页的内容

在这里插入图片描述

在这里插入图片描述

在本博客学习的技术不得以任何方式直接或者间接的从事违反中华人民共和国法律,内容仅供学习、交流与参考
免责声明:本文部分素材来源于网络,版权归原创者所有,如存在文章/图片/音视频等使用不当的情况,请随时私信联系我、以迅速采取适当措施,避免给双方造成不必要的经济损失。

本文参考链接:https://huanmin.blog.csdn.net/article/details/121513618
评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!