电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

python爬蟲學習筆記之pyquery模塊基本用法詳解

瀏覽:4日期:2022-07-30 15:45:35

本文實例講述了python爬蟲學習筆記之pyquery模塊基本用法。分享給大家供大家參考,具體如下:

相關內容: pyquery的介紹 pyquery的使用 安裝模塊 導入模塊 解析對象初始化 css選擇器 在選定元素之后的元素再選取 元素的文本、屬性等內容的獲取 pyquery執行DOM操作、css操作 Dom操作 CSS操作 一個利用pyquery爬取豆瓣新書的例子

首發時間:2018-03-09 21:26

pyquery的介紹 pyquery允許對xml、html文檔進行jQuery查詢。 pyquery使用lxml進行快速xml和html操作。 pyquery是python中的jqueryPyQuery的使用:1.安裝模塊:

pip3 install pyquery2.導入模塊:

from pyquery import PyQuery as pq3.解析對象初始化:

【使用PyQuery初始化解析對象,PyQuery是一個類,直接將要解析的對象作為參數傳入即可】

解析對象為字符串時字符串初始化 :默認情況下是字符串,如果字符串是一個帶httphttps前綴的,將會認為是一個url

textParse = pq(html) 解析對象為網頁時url初始化: 建議使用關鍵字參數url=

# urlParse = pq(’http://www.baidu.com’) #1urlParse = pq(url=’http://www.baidu.com’) #2 解析對象為文件時文件初始化:建議使用關鍵字參數filename=

fileParse = pq(filename='L:demo.html') 解析完畢后,就可以使用相關函數或變量來進行篩選,可以使用css等來篩選,4.CSS選擇器: 利用標簽獲取:

result = textParse(’h2’).text() 利用類選擇器:

result3=textParse('.p1').text() 利用id選擇:

result4=textParse('#user').attr('type') 分組選擇:

result5=textParse('p,div').text() 后代選擇器:

result6=textParse('div a').attr.href 屬性選擇器:

result7=textParse('[class=’p1’]').text() CSS3偽類選擇器:

result8=textParse('p:last').text()

(更多的,可以參考css)

5.在選定元素之后的元素再選取: find():找出指定子元素 ,find可以有參數,該參數可以是任何 jQuery 選擇器的語法, filter():對結果進行過濾,找出指定元素 ,filter可以有參數,該參數可以是任何 jQuery 選擇器的語法, children():獲取所有子元素,可以有參數,該參數可以是任何 jQuery 選擇器的語法, parent():獲取父元素,可以有參數,該參數可以是任何 jQuery 選擇器的語法, parents():獲取祖先元素,可以有參數,該參數可以是任何 jQuery 選擇器的語法, siblings():獲取兄弟元素,可以有參數,該參數可以是任何 jQuery 選擇器的語法,

from pyquery import PyQuery as pqhtml='''<html><head></head><body><h2>This is a heading</h2><p class='p1'>This is a paragraph.</p><p class='p2'>This is another paragraph.</p><div> 123<a rel='external nofollow' rel='external nofollow' rel='external nofollow' >hello</a></div><input type='Button' ><input type='text' ></body>'''###初始化textParse = pq(html)# urlParse = pq(’http://www.baidu.com’) #1# urlParse = pq(url=’http://www.baidu.com’) #2# fileParse = pq(filename='L:demo.html')##獲取result = textParse(’h2’).text()print(result)result2= textParse(’div’).html()print(result2)result3=textParse('.p1').text()print(result3)result4=textParse('#user').attr('type')print(result4)result5=textParse('p,div').text()print(result5)result6=textParse('div a').attr.hrefprint(result6)result7=textParse('[class=’p1’]').text()print(result7)result8=textParse('p:last').text()print(result8)result9=textParse('div').find('a').text()print(result9)result12=textParse('p').filter('.p1').text()print(result12)result10=textParse('div').children()print(result10)result11=textParse('a').parent()print(result11)6.元素的文本、屬性等內容的獲?。?p>attr(attribute):獲取屬性

result2=textParse('a').attr('href')

attr.xxxx:獲取屬性xxxx

result21=textParse('a').attr.hrefresult22=textParse('a').attr.class_

text():獲取文本,子元素中也僅僅返回文本

result1=textParse('a').text()

html():獲取html,功能與text類似,但返回html標簽python爬蟲學習筆記之pyquery模塊基本用法詳解

result3=textParse('div').html()

補充1:

元素的迭代:如果返回的結果是多個元素,如果想迭代出每個元素,可以使用items():

python爬蟲學習筆記之pyquery模塊基本用法詳解

補充2:pyquery是jquery的python化,語法基本都是相通的,想了解更多,可以參考jquery。

pyquery執行DOM操作、css操作:DOM操作:

add_class():增加class

remove_class():移除class

remove():刪除指定元素

from pyquery import PyQuery as pqhtml='''<html><head></head><body><h2>This is a heading</h2><p class='p1'>This is a paragraph.</p><p class='p2'>This is another paragraph.</p><div style='color:blue'> 123<a rel='external nofollow' rel='external nofollow' rel='external nofollow' >hello</a></div><input type='Button' ><input type='text' ></body>'''textParse=pq(html)textParse(’a’).add_class('c1')print(textParse(’a’).attr('class'))textParse(’a’).remove_class('c1')print(textParse(’a’).attr('class'))print(textParse(’div’).html())textParse(’div’).remove('a')print(textParse(’div’).html())css操作: attr():設置屬性 設置格式:attr('屬性名','屬性值') css():設置css 設置格式1:css('css樣式','樣式值') 格式2:css({'樣式1':'樣式值','樣式2':'樣式值'})

from pyquery import PyQuery as pqhtml='''<html><head></head><body><h2>This is a heading</h2><p class='p1'>This is a paragraph.</p><p class='p2'>This is another paragraph.</p><div style='color:blue'> 123<a rel='external nofollow' rel='external nofollow' rel='external nofollow' >hello</a></div><input type='Button' ><input type='text' ></body>'''textParse=pq(html)textParse(’a’).attr('name','hehe')print(textParse(’a’).attr('name'))textParse(’a’).css('color','white')textParse(’a’).css({'background-color':'black','postion':'fixed'})print(textParse(’a’).attr('style'))

這些操作什么時候會被用到:

【有時候可能會將數據樣式處理一下再存儲下來,就需要用到,比如我獲取下來的數據樣式我不滿意,可以自定義成我自己的格式】

【有時候需要逐層清理再篩選出指定結果,比如<div>123<a></a></div>中,如果僅僅想要獲取123就可以先刪除<a>再獲取】

一個利用pyquery爬取豆瓣新書的例子:

先使用審查元素,定位目標元素python爬蟲學習筆記之pyquery模塊基本用法詳解

確認爬取信息python爬蟲學習筆記之pyquery模塊基本用法詳解

要注意的是,豆瓣新書是有一些分在后面頁的,實際上目標應該是li的上一級ul:python爬蟲學習筆記之pyquery模塊基本用法詳解

使用PyQuery篩選出結果:

from pyquery import PyQuery as pqurlParse=pq(url='https://book.douban.com/')info=urlParse('div.carousel ul li div.info')file=open('demo.txt','w',encoding='utf8')for i in info.items(): title=i.find('div.title') author=i.find('span.author') abstract=i.find('.abstract') file.write('標題:'+title.text()+'n') file.write('作者:'+author.text()+'n') file.write('概要:'+abstract.text()+'n') file.write('-----------------n') print('n')file.close()

更多關于Python相關內容可查看本站專題:《Python Socket編程技巧總結》、《Python正則表達式用法總結》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》、《Python入門與進階經典教程》及《Python文件與目錄操作技巧匯總》

希望本文所述對大家Python程序設計有所幫助。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | 欧美日韩国产一区二区三区不_久久久久国产精品无码不卡_亚洲欧洲美洲无码精品AV_精品一区美女视频_日韩黄色性爱一级视频_日本五十路人妻斩_国产99视频免费精品是看4_亚洲中文字幕无码一二三四区_国产小萍萍挤奶喷奶水_亚洲另类精品无码在线一区 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 拖链电缆_柔性电缆_伺服电缆_坦克链电缆-深圳市顺电工业电缆有限公司 | 北京银联移动POS机办理_收银POS机_智能pos机_刷卡机_收银系统_个人POS机-谷骐科技【官网】 | 酒水灌装机-白酒灌装机-酒精果酒酱油醋灌装设备_青州惠联灌装机械 | PCB设计,PCB抄板,电路板打样,PCBA加工-深圳市宏力捷电子有限公司 | 干粉砂浆设备-干粉砂浆生产线-干混-石膏-保温砂浆设备生产线-腻子粉设备厂家-国恒机械 | 南京租车,南京汽车租赁,南京包车,南京会议租车-南京七熹租车 | 水厂自动化|污水处理中控系统|水利信息化|智慧水务|智慧农业-山东德艾自动化科技有限公司 | 同学聚会纪念册制作_毕业相册制作-成都顺时针宣传画册设计公司 | 河南包装袋厂家_河南真空袋批发价格_河南服装袋定制-恒源达包装制品 | MES系统工业智能终端_生产管理看板/安灯/ESOP/静电监控_讯鹏科技 | 蓝莓施肥机,智能施肥机,自动施肥机,水肥一体化项目,水肥一体机厂家,小型施肥机,圣大节水,滴灌施工方案,山东圣大节水科技有限公司官网17864474793 | 跨境物流_美国卡派_中大件运输_尾程派送_海外仓一件代发 - 广州环至美供应链平台 | 爱佩恒温恒湿测试箱|高低温实验箱|高低温冲击试验箱|冷热冲击试验箱-您身边的模拟环境试验设备技术专家-合作热线:400-6727-800-广东爱佩试验设备有限公司 | 走心机厂家,数控走心机-台州博城智能科技有限公司 | 航空障碍灯_高中低光强航空障碍灯_民航许可认证航空警示灯厂家-东莞市天翔航天科技有限公司 | 美能达分光测色仪_爱色丽分光测色仪-苏州方特电子科技有限公司 | 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 北京征地律师,征地拆迁律师,专业拆迁律师,北京拆迁律师,征地纠纷律师,征地诉讼律师,征地拆迁补偿,拆迁律师 - 北京凯诺律师事务所 | 雪花制冰机(实验室雪花制冰机)百科 | 书法培训-高考书法艺考培训班-山东艺霖书法培训凭实力挺进央美 | 全温度恒温培养摇床-大容量-立式-远红外二氧化碳培养箱|南荣百科 | 拉伸膜,PE缠绕膜,打包带,封箱胶带,包装膜厂家-东莞宏展包装 | 福州时代广告制作装饰有限公司-福州广告公司广告牌制作,福州展厅文化墙广告设计, | 传递窗_超净|洁净工作台_高效过滤器-传递窗厂家广州梓净公司 | 好杂志网-首页| 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 上海阳光泵业制造有限公司 -【官方网站】 | 扬州汇丰仪表有限公司| 便民信息网_家电维修,家电清洗,开锁换锁,本地家政公司 | STRO|DTRO-STRO反渗透膜(科普)_碟滤 | 精密光学实验平台-红外粉末压片机模具-天津博君 | 防爆正压柜厂家_防爆配电箱_防爆控制箱_防爆空调_-盛通防爆 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | COD分析仪|氨氮分析仪|总磷分析仪|总氮分析仪-圣湖Greatlake | 国际船舶网 - 船厂、船舶、造船、船舶设备、航运及海洋工程等相关行业综合信息平台 | 媒介云-全网整合营销_成都新闻媒体发稿_软文发布平台 |