使用lxml和请求进行HTML抓取会出现unicode错误

用户3783999

我正在尝试使用此处提供的HTML抓取工具他们提供的示例效果很好。但是,当我尝试在网页上使用它时,出现此错误-Unicode strings with encoding declaration are not supported. Please use bytes input or XML fragments without declaration. 我尝试使用Google谷歌搜索,但是找不到解决方案。我真的很感谢您的帮助。我想知道是否可以使用Python将其复制为HTML。

编辑:

from lxml import html
import requests
page = requests.get('http://cancer.sanger.ac.uk/cosmic/gene/analysis?ln=PTEN&ln1=PTEN&start=130&end=140&coords=bp%3AAA&sn=&ss=&hn=&sh=&id=15#')
tree = html.fromstring(page.text)

谢谢。

罗伯

简短的答案:使用page.content,而不是page.text

来自http://lxml.de/parsing.html#python-unicode-strings

lxml.etree中的解析器可以立即处理unicode字符串...但是,这要求unicode字符串本身不指定冲突的编码,因此要取决于它们的真实编码

http://docs.python-requests.org/en/latest/user/quickstart/#response-content

请求将自动解码来自服务器的内容(为[as r.text])。...您还可以以字节[as r.content]的形式访问响应主体

因此,您看到了两者,requests.textlxml.etree希望将utf-8解码为unicode。但是,如果我们requests.text进行解码,那么xml文件中的编码语句将成为谎言。

因此,让我们requests.content不进行解码。这样,lxml将收到一个始终未解码的文件。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用lxml和请求进行Web抓取

来自分类Dev

雅虎的 HTML 抓取工具!财务使用 lxml 和请求返回错误值

来自分类Dev

使用请求进行身份验证后的Web抓取

来自分类Dev

使用Python脚本响应中的请求进行Web抓取

来自分类Dev

使用ElementTree和请求进行XML解析

来自分类Dev

使用python请求进行etrade抓取并不想使用跨域网址

来自分类Dev

使用Python请求进行Twitter抓取时如何执行oauth

来自分类Dev

使用Python和lxml进行网上抓取Strava

来自分类Dev

使用请求进行网页搜集-Python

来自分类Dev

如何使用Android Studio和Web Api通过相同的请求进行发布和获取

来自分类Dev

如何使用Android Studio和Web Api通过相同的请求进行发布和获取

来自分类Dev

使用多个AJAX请求进行laravel 5.2 mysql批量插入,toSql()错误

来自分类Dev

使用多个AJAX请求进行laravel 5.2 mysql批量插入,toSql()错误

来自分类Dev

使用R和selectorgadget进行HTML抓取

来自分类Dev

Angular 2-使用异步HTTP请求进行插值和绑定

来自分类Dev

使用带有请求和 lxml 的 xpath 进行抓取但有问题

来自分类Dev

在python中对请求进行异常时的错误

来自分类Dev

请求 cloudinary 资源会出现 CORS 错误

来自分类Dev

当有脚本结果时,如何通过请求进行网络抓取,Bs4?

来自分类Dev

使用lxml和xpath抓取网站后出现数据类型问题

来自分类Dev

如何正确使用Siege对GET请求进行基准测试?

来自分类Dev

使用Python请求进行Cookie身份验证

来自分类Dev

节点:如何使用https模块对请求进行分页?

来自分类Dev

使用Java http请求进行Twitch身份验证

来自分类Dev

表单验证后使用ajax请求进行cfform验证

来自分类Dev

尝试使用节点请求进行身份验证

来自分类Dev

使用bash脚本与终端输入请求进行交互

来自分类Dev

如何在 Express 中使用请求进行 POST

来自分类Dev

使用启用 Cookie 的 Python 请求进行 Web 爬网

Related 相关文章

  1. 1

    使用lxml和请求进行Web抓取

  2. 2

    雅虎的 HTML 抓取工具!财务使用 lxml 和请求返回错误值

  3. 3

    使用请求进行身份验证后的Web抓取

  4. 4

    使用Python脚本响应中的请求进行Web抓取

  5. 5

    使用ElementTree和请求进行XML解析

  6. 6

    使用python请求进行etrade抓取并不想使用跨域网址

  7. 7

    使用Python请求进行Twitter抓取时如何执行oauth

  8. 8

    使用Python和lxml进行网上抓取Strava

  9. 9

    使用请求进行网页搜集-Python

  10. 10

    如何使用Android Studio和Web Api通过相同的请求进行发布和获取

  11. 11

    如何使用Android Studio和Web Api通过相同的请求进行发布和获取

  12. 12

    使用多个AJAX请求进行laravel 5.2 mysql批量插入,toSql()错误

  13. 13

    使用多个AJAX请求进行laravel 5.2 mysql批量插入,toSql()错误

  14. 14

    使用R和selectorgadget进行HTML抓取

  15. 15

    Angular 2-使用异步HTTP请求进行插值和绑定

  16. 16

    使用带有请求和 lxml 的 xpath 进行抓取但有问题

  17. 17

    在python中对请求进行异常时的错误

  18. 18

    请求 cloudinary 资源会出现 CORS 错误

  19. 19

    当有脚本结果时,如何通过请求进行网络抓取,Bs4?

  20. 20

    使用lxml和xpath抓取网站后出现数据类型问题

  21. 21

    如何正确使用Siege对GET请求进行基准测试?

  22. 22

    使用Python请求进行Cookie身份验证

  23. 23

    节点:如何使用https模块对请求进行分页?

  24. 24

    使用Java http请求进行Twitch身份验证

  25. 25

    表单验证后使用ajax请求进行cfform验证

  26. 26

    尝试使用节点请求进行身份验证

  27. 27

    使用bash脚本与终端输入请求进行交互

  28. 28

    如何在 Express 中使用请求进行 POST

  29. 29

    使用启用 Cookie 的 Python 请求进行 Web 爬网

热门标签

归档