python爬虫乱码
A. 我在写一个python的网络爬虫,写入记事本的内容都是乱码如何使写入的数据以utf8或者gb2312的码制写入。
我从自己一个utf8的爬虫程序里面摘的。
程序开头:
#!/usr/bin/envpython
#-*-coding:utf8-*-
importurllib
importurllib2
importstring
importre
importsys
type0=sys.getfilesystemencoding()#解决中文乱码问题
后面做抓取程序的时候全部加上decode和encode。
pos1=text.find(term.decode("utf-8").encode(type0))
在输入到txt的时候相应的分隔符也要decode和encode:
f.write(info+'!'.decode("utf-8").encode(type0))
希望能帮到你。
B. python3爬虫获取HTML文档时的问题。
很正常。控制台支持的编码有限。建议你存到文件再打开看是否正常。
另外页面写了是gbk编码,存文件也试试gbk
C. 为什么python写的爬虫有时候抓取的数据是乱码
1. 使用chrome浏览器,打开示例页面http://tieba..com/p/3295185529?see_lz=1
2. 在帖子标题处,右键选择"审查元素",可以看到标题的源代码
3. 进行简单的分析,我们需要获取的是title后面的内容,根据页面实际内容,我们编写相应的正则表达式:
title_re=re.compile('<h1 class="core_title_txt " title="(.*?)"')
4. 同理,我们对帖子内容进行"审查元素",得到内容的源代码
5. 编写相应的正则表达式如下:
content_re=re.compile('<div id="post_content_\d*" class="d_post_content j_d_post_content ">(.*?)</div>')
6. 这样通过urllib2打开页面后,使用上述的正则表达式进行匹配,再对标题和文本内容进行相应的处理即可
D. python编写爬虫爬到的中文字符总是乱码,r.encoding也不行
这个页面是gb2312编码的,不是utf-8
E. 为什么Python写的爬虫有时候抓取的数据是乱码
为什么Python写的爬虫有时候抓取的数据是乱码
写爬虫是经常会遇到这样的问题,这种问题很显然是编码问题,解决的方法其实也不难。
你可以用下面的两个方法来解决你的编码问题:
第一种是,通过浏览器打开你写的html之后,找到浏览器中的文字编码修改,将编码改为Unicode编码,即可修复。
xml takes all the pain out of XML. Stephan Richter lxml是Python语言里和XML以及HTML工作的功能最丰富和最容易使用的库
F. python3,pycharm,写爬虫时遇到打印的结果乱码,希望得到大神的帮助,谢谢啦
这个问题主要是编码问题,一般需要检查系统设置、ide设置、python代码里的编码,一致改成utf8一般就没问题。
windows中文默认是gbk,ide就要相应改成gbk才能显示完整
G. python爬虫抓下来的网页,中间的中文乱码怎么解决
对于python的中文编码问题可以参考下面的帖子
http://python.jobbole.com/85482/
同时,对于网页的中文乱码,建立使用requests模块代替urllib\urllib2
requests的content方法,对中文编码,支持比较好,基本不会出现乱码。
req=requests.get(url,cookies=mecookies)
print req.content
具体用法,参见下面两个帖子,较详细:
http://blog.csdn.net/iloveyin/article/details/21444613
http://blog.csdn.net/alpha5/article/details/24964009
H. python爬虫,第一个数据是乱码,但后面的数据又是正确的,大佬们解答一下呀,谢谢。(附图)
图片不清,乱码可能是意外匹配进来的
I. python3爬虫抓取网页乱码怎么解决
Python写程序原则是所有进来的字符串(读文件,爬网页),一进来就decode,处理完之后在要输出的地方在encode。题主读入(read)和输出(print)在一行里,要在win下面想不出错就这么写 print response.decode('utf-8').encode('gbk')
J. python爬虫爬到的中文乱码怎么办
爬到的内容,肯定是某种编码格式(utf-8/gb2312等)的字符串。只需要对它相应的decode一下就可以了。
比如:如果网页内容是utf-8编码的,就:'xxx'.decode('utf-8');
如果是gb2312编码的,就:'xxx'.decode('gb2312')