php 网页内容抓取(比如说在requests中如何使用cookies进行登录验证(图))

优采云 发布时间: 2022-02-17 07:03

  php 网页内容抓取(比如说在requests中如何使用cookies进行登录验证(图))

  最近在学习python爬虫的时候,在使用requests的时候遇到了很多问题。例如,如何在请求中使用 cookie 进行登录验证。您可以查看博客内容。本篇博客要解决的问题是使用requests时如何避免乱码。

  import requests

res=requests.get("https://www.baidu.com")

print res.content

  以上是使用requests从一个简单的网页请求数据的方式。但是很容易出现乱码问题。

  我们可以在网页上右键查看编码方式查看源码: content="text/html;charset=utf-8"-> 可以知道网页的编码方式是utf8.@ >由于中文编码模式为gbk,所以我们需要将编码模式改为gbk。

  查了一些资料,说requests可以自动获取网页的编码方式,res.encode的输出看起来像utf8,没错没错。但是中文输出的内容有乱码。据说可以直接指定获取到的内容的encode属性,“res.encode='gbk'”,但是我试了一下,不行。

  python的内部编码方式是utf8,也就是说python在处理其他字符串内容时,必须先将内容转换成utf8的编码方式,然后再解码成你想要输出的编码方式。

  比如s=”Chinese”就是str类型的字符串编码方式是gb2312

  需要s.decode("gb2312") 将gb2312编码方式的内容解码成Unicode编码

  然后输出时指定s的编码方式为gbk->s.encode("gbk")

  言归正传,我们得到网页内容res后,通过res.content.decode("utf8","ignore").encode("gbk","ignore")就不会出现乱码了。

  这里使用的ignore属性意味着忽略其中有字段的编码,只显示有效的编码。

  先说python编码的转换问题:(可以查看博客总结)

  关于请求使用代理问题的解决方法,可以查看博客内容。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线