美文网首页
解决lxml 解析非utf-8编码网页的方法

解决lxml 解析非utf-8编码网页的方法

作者: 八神苍月 | 来源:发表于2017-06-01 10:14 被阅读162次

编码问题是一个老问题了,python3中默认编码方式使utf-8,lxml默认解析方式也是utf-8,但是仍然有很多编码方式为gb2312 和gbk 的网页存在,在爬取和解析的过程中我们如何解决呢?

python3 相较于python2 来说做了很多改变,取消了Unicode函数,所以很多网上的方法行不通了。多次尝试之后,下面这种方法比较有效。

headers={'User_Agent':"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"}

url='http://www.qiubaichengren.com/gif/list_2.html'

html = requests.get(url,headers=headers)##调用request函数把套图地址传进去会返回给我们一个response

print(u'网页数据总长度是: \d',len(html.text))


解决方案来了,太坑爹了……


html.encoding = 'gb2312'    #先声明网页的编码方式

page = etree.HTML(html.content)  #直接解析content,而不是text ,parse方法不知道content是否可以

#print (html.text)

nodes_title = page.xpath('//div[@class="mtitle"]//text()')

print(len(nodes_title))

#8

print(nodes_title[0])

#老板,出个价吧

nodes_imgurl = page.xpath('//div[@style="text-align: center;"]//img/@src')

print(len(nodes_imgurl))

#8

print(nodes_imgurl[0])

#http://wx2.sinaimg.cn/mw690/8903e1f3gy1ffq18eskojg20b4069e81.gif

ps:xpath方法的确很高效,而且可读性和可理解性要强于正则表达式  xpath是否可以提取多个数据呢?

相关文章

  • 解决lxml 解析非utf-8编码网页的方法

    编码问题是一个老问题了,python3中默认编码方式使utf-8,lxml默认解析方式也是utf-8,但是仍然有很...

  • HTML认识1

    网页乱码的问题是如何产生的?怎样解决? 文件和浏览器解析的编码不一致 保存文件格式设置为utf-8编码 html文...

  • lxml库与Xpath语法

    lxml库使用Xpath语法解析定位网页数据。 lxml库的使用 (1)修正HTML代码 lxml为XML解析库,...

  • python爬虫系列(3)- 网页数据解析(bs4、lxml、J

    python爬虫系列(3)- 网页数据解析(bs4、lxml、Json库) 本文记录解析网页bs4、lxml、Js...

  • 爬虫常用库总结

    获取网页:requests get url params post data headers 网页解析 lxml ...

  • org.xml.sax.SAXParseException; l

    问题 解决方法 原来文件是以UTF-8格式编码”,改成 “以UTF-8无BOM格式编码”。

  • HTML基础-第二章文档段落

    1.网页编码设置 当网页显示出现乱码解决:添加 注:在国内使用utf-8、GB2312、gbk等编码。 2.文字和...

  • Python 爬虫

    工具 下载器:urllib3网页解析器:html.parser、lxml网页解析库:beautifulsoup4爬...

  • html ISO-8859-1编码乱码问题

    解决方法,编码方式重定义为utf-8编码 resp = requests.get(start_url,header...

  • 4.HTML基础

    1、网页乱码的问题是如何产生的?解决方法? ①保存的编码格式和浏览器解析时的解码格式不匹配导致的。将保存的编码格式...

网友评论

      本文标题:解决lxml 解析非utf-8编码网页的方法

      本文链接:https://www.haomeiwen.com/subject/qmdsfxtx.html