Python中最宽容的HTML解析器是什么?
我有一些随机的html,我用美丽的小组来解析它,但是在大多数情况下(> 70%),它会窒息.我尝试使用漂亮的汤3.0.8和3.2.0(3.1.0以上存在一些问题),但结果几乎相同. 我可以回想起python的几个HTML解析器选项,从我的头顶上可以使用: 美丽的小组 lxml Pyquery 我打算测试所有这些,但我想知道您的测试中的哪一个是最宽容的,甚至可以试图解析不良HTML. 解决方案 我最终使用html5lib的Beautifulsoup 4.0进行解析,并且更加宽容,并且对我的代码进行了一些修改,现在非常考虑,感谢所有建议. . 其他解决方案 他们都是.我还没有遇到LXML.html无法解析的任何HTML页面.如果您要解析的页面上的lxml barfs,您总是可以使用一些纠正责任来预处理它们以保持LXML快乐. lxml本身相当严格,但是lxml.html是一个不同的解析器,可以处理非常损坏的HTML.对于极度打破的html,LXM
0 2024-03-30
编程技术问答社区
将以utf-8字符串为内容的unicode转换为str
我正在使用Pyquery解析页面: dom = PyQuery('http://zh.wikipedia.org/w/index.php', {'title': 'CSS', 'printable': 'yes', 'variant': 'zh-cn'}) content = dom('#mw-content-text > p').eq(0).text() 但是我在content中得到的是一个带有UTF-8编码内容的Unicode字符串: u'\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8...' 如何将其转换为str而不会丢失内容? 清楚: 我想要conent == '\xe5\xb1\x82\xe5\x8f\xa0\xe6\xa0\xb7\xe5\xbc\x8f\xe8\xa1\xa8' 不是conent == u'\xe5\xb1\x82\xe5\x8f\xa0\xe6\
12 2023-11-11
编程技术问答社区
使用Python将整个JSON转换为一个SQLite字段
我有一个简单的问题.我正在尝试从在线来源中获取JSON,然后将其存储在SQLite表中.除了将数据存储在富度表中,与JSON中的许多字段相对应,我也想每次将整个JSON都倒入表中. 桌子看起来像: CREATE TABLE Raw_JSONs (ID INTEGER PRIMARY KEY ASC, T DATE DEFAULT (datetime('now','localtime')), JSON text); 我使用以下python代码从某些URL中拔出JSON: from pyquery import PyQuery from lxml import etree import urllib x = PyQuery(url='json') y = x('p').text() 现在,我想执行以下插入命令: import sqlite3 db = sqlite3.connect('a.db') c = db.cursor() c.execute("i
10 2023-09-22
编程技术问答社区
如何使用Python'的Requests模块 "登录 "网站?
我正在尝试使用Python中的请求模块发布请求以登录到网站,但实际上并不可用.我是新手...所以我不知道我是否应该制作我的用户名和密码cookie或某种类型的HTTP授权内容(??). from pyquery import PyQuery import requests url = 'http://www.locationary.com/home/index2.jsp' 所以现在,我认为我应该使用"帖子"和cookie .... ck = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'} r = requests.post(url, cookies=ck) content = r.text q = PyQuery(content) title = q("title").text() print title 我有一种感觉,我在做错事...我不知道. 如果它无法正确登录,则主页的标题应
42 2023-07-15
编程技术问答社区
通过Pip安装PyQuery
我正在尝试通过pip安装PyQuery,但是我遇到了一个错误.我使用的命令是: sudo pip install pyquery 我得到以下输出: Requirement already satisfied (use --upgrade to upgrade): pyquery in /usr/local/lib/python2.7/dist-packages Downloading/unpacking lxml>=2.1 (from pyquery) Running setup.py egg_info for package lxml /usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'bugtrack_url' warnings.warn(msg) Building lxml version 3.3.0. Building without Cyth
26 2023-07-01
编程技术问答社区
pip错误:未识别的命令行选项"-fstack-protector-strong
当i sudo pip install pyquery,sudo pip install lxml和sudo pip install cython时,我得到的输出非常相似,同样的错误表示: x86_64-linux-gnu-gcc: error: unrecognized command line option ‘-fstack-protector-strong’ 这是sudo pip install pyquery的完整PIP输出: Requirement already satisfied (use --upgrade to upgrade): pyquery in /usr/local/lib/python2.7/dist-packages Downloading/unpacking lxml>=2.1 (from pyquery) Running setup.py egg_info for package lxml /usr/lib/python2.
66 2023-06-24
编程技术问答社区
beautifulsoup - python爬虫获取不到标签内容
链接如下: http://aaxxy.com/vod-detail-i... 使用requests请求此连接,然后用BeautifulSoup解析获取 dl > dd > a 标签的内容,其中: 上图所示的4个 a 标签的内容只能获取到第一个“电影”,后面三个“动作”“喜剧”“剧情”获取不到,输出结果为None: 使用pyquery解析的话连None都不显示,直接跳过这三个标签了: 请问为什么会这样? 代码如下: bs4解析: web_data = requests.get('http://aaxxy.com/vod-detail-id-10.html ') web_data.encoding = 'utf-8' soup = BeautifulSoup(web_data.text,'lxml') actor = soup.select('dl > dd > a') print(actor) for i in actor: print(i.st
3962 2022-07-17
编程技术问答社区
python - 怎么用pyquery把一些蹩脚的HTML代码中的信息提出来?
问 题 用python的pyquery库,怎么把以下HTML代码中的用户名,姓名,性别,文化程度,证件类型,证件号码等提取出来? from pyquery import PyQuery as pq content='''...............'''#下面的HTML info=pq(content) info("#uname").text()#这是姓名 info("#papersNo").text()#这是身份证号 #但是其它的不会了,例如性别,文化程度,证件类型... 以下是HTML  
158 2022-07-17
编程技术问答社区
python - pyquery能像requests一样定制请求头吗?
问 题 好像requests的速度没有pyquery快,pyquery可以传入一个url参数,但是其它比如请求头,pyquery能自定义吗? 解决方案 比较好奇楼主在怎样的场景比较出: pyquery比requests要快? 可以把代码贴出来学习下. 不过从库的介绍来看 pyquery 1.2.17 A jquery-like library for python 很明显pyquery是为了让我们更方便的解析dom结构的字符串, 而不是专门用来请求, 所以请求这些活, 还是交给requests吧, 如果嫌速度不够快, 可以尝试协程/多线程/多进程这些方案.
180 2022-07-17
编程技术问答社区
python - pyquery+lxml空标签被自闭合问题
问 题 from pyquery import PyQuery as pq html=" " a=pq(html) print(a.html()) //会输出 ,其他html标签也是如此 当一个标签是空的时候,他就自动自闭合了。 我想不让他自动闭合,应该怎么办? pyquery用的是lxml解析的html,我用lxml单独试了一下,问题依旧,希望高人指点。 解决方案 没太听明白你在讲什么,我得到的输出是None,升级下pyquery >>> from pyquery import PyQuery as pq >>> html=" " >>> a=pq(html) >>> print(a.html()) None >>>
334 2022-07-17
编程技术问答社区