Windows下的安装:
下载地址:https://pypi.python.org/pypi/pyquery/#downloads
下载后安装:
C:\Python27>easy_install E:\python\pyquery-1.2.4.zip
也可以直接在线安装:
C:\Python27>easy_install pyquery
pyquery是一个类似jquery的python库,可以使用像jquery那样的语法来提取网页中的任何数据,这个用于html网页的数据提取和挖掘还是一个很不错的第三方库的。下面我们来看下pyquery的用法有哪些。
从html字符串中提取信息
#!/usr/bin/python # -*- coding: utf-8 -*- from pyquery import PyQuery as pq html = ''' <html> <head> <title>this is title</title> </head> <body> <p id="hi">Hello, World</p> <p id="hi2">Nihao</p> <div class="class1"> <img src="/UploadFiles/2021-04-08/1.jpg">上面的代码段给出了pyquery常用的操作方法。我们先定义了一段html代码,然后利用pyquery的一系列方法对该html代码进行了操作,主要是获取特定的元素以及文本等。当然,pyquery不仅仅能够获取元素,还能进行设置元素属性、增加元素等功能,鉴于我们最常用的就是上面代码中用到的方法,这里就不再对其他方法进行介绍了。
从url或本地html文件中提取信息
当然,pyquery也不仅仅可以解析像上面的html字符串,还可以这样:
d = pq(url='http://www.baidu.com/')我们可以直接加载一个URL,和上面的操作方法没有任何区别。这种方法默认使用urllib模块进行http请求,但如果你的系统中安装了requests的话,那么就会使用requests来进行http请求,这也就意味着你可以使用requests的任何参数,比如:
pq('http://www.baidu.com/', headers={'user-agent': 'pyquery'})或者,如果你在你的本地已经有了对应的html文件,那么还可以这样:
d = pq(filename=path_to_html_file)上面的写法直接指定了本地的html文件,且操作方法仍然与上面的相同。
可以看到,pyquery给我们提供充分的便利性来进行任何元素的选取,就像jquery一样。利用pyquery抓取豆瓣电影top250
看完了pyquery的语法,我们来看一个实例,抓取豆瓣电影top250。
因为豆瓣反爬虫反的厉害,运行几次就没法再抓了,我只好先用requests把页面下载下来,直接使用pyquery分析页面的方法来提取信息:from pyquery import PyQuery as pq import requests head_req = { 'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36', 'Referer':'https://movie.douban.com/top250"https://movie.douban.com/top250",headers=head_req) with open("1.html","wb") as html: html.write(r.content) d=pq(filename="1.html") # print d('ol').find('li').html() for data in d('ol').items('li'): print data.find('.hd').find('.title').eq(0).text() print data.find('.star').find('.rating_num').text() print data.find('.quote').find('.inq').text() print运行下看看结果:
肖申克的救赎 9.6 希望让人自由。 这个杀手不太冷 9.4 怪蜀黍和小萝莉不得不说的故事。 阿甘正传 9.4 一部美国近现代史。 霸王别姬 9.4 风华绝代。 美丽人生 9.5 最美的谎言。 千与千寻 9.2 最好的宫崎骏,最好的久石让。 辛德勒的名单 9.4 拯救一个人,就是拯救整个世界。 海上钢琴师 9.2 每个人都要走一条自己坚定了的路,就算是粉身碎骨。 机器人总动员 9.3 小瓦力,大人生。 盗梦空间 9.2 诺兰给了我们一场无法盗取的梦。 泰坦尼克号 9.1 失去的才是永恒的。 三傻大闹宝莱坞 9.1 英俊版憨豆,高情商版谢耳朵。 放牛班的春天 9.2 天籁一般的童声,是最接近上帝的存在。 忠犬八公的故事 9.2 永远都不能忘记你所爱的人。 龙猫 9.1 人人心中都有个龙猫,童年就永远不会消失。 大话西游之大圣娶亲 9.1 一生所爱。 教父 9.2 千万不要记恨你的对手,这样会让你失去理智。 乱世佳人 9.2 Tomorrow is another day. 天堂电影院 9.1 那些吻戏,那些青春,都在影院的黑暗里被泪水冲刷得无比清晰。 当幸福来敲门 8.9 平民励志片。 搏击俱乐部 9.0 邪恶与平庸蛰伏于同一个母体,在特定的时间互相对峙。 楚门的世界 9.0 如果再也不能见到你,祝你早安,午安,晚安。 触不可及 9.1 满满温情的高雅喜剧。 指环王3:王者无敌 9.1 史诗的终章。 罗马假日 8.9 爱情哪怕只有一天。当然这只是第一页的25条,我们已经知道了豆瓣电影top250的url是
https://movie.douban.com/top250?start=0
start参数从0,每次加25,直到https://movie.douban.com/top250?start=225
所以可以写个循环把它们都抓下来。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新日志
- 梅艳芳.1994-是这样的(金碟版)【华星】【WAV+CUE】
- 张学友《真情流露》HQ+S纯银深度[低速原抓WAV+CUE]
- 江志丰2012-七天[豪记][WAV+CUE]
- 黑鸭子2003《聆听柔情HQCD》[日本版][WAV+CUE]
- 群星《奔赴!万人现场 第5期》[FLAC/分轨][587.07MB]
- 关大洲《国家宝藏 第四季原声音乐 关大洲作品》[320K/MP3][109.49MB]
- 关大洲《国家宝藏 第四季原声音乐 关大洲作品》[FLAC/分轨][527.23MB]
- LOL双城之战大乱斗什么时候更新 双城大乱斗上线更新时间介绍
- s14全球总决赛冠军皮肤有什么 2024T1冠军皮肤选择一览
- faker加里奥s14决赛什么出装 faker加里奥s14决赛出装介绍
- 《马里奥与路易吉RPG:兄弟齐航》Fami通34分:路易吉存在感拉满
- 数据挖掘者新发现:NS继任机型或支持4K分辨率
- 宫本茂谈任天堂未来:研发费用增加但注重创意与传承
- 陈小云.2000-餐厅综艺金榜【海丽唱片】【WAV+CUE】
- 卓文萱.2008-翻滚吧!蛋炒饭电视原声带【滚石】【FLAC分轨】