日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python教学视频p_python接口自动化28requestshtml爬虫框架

發(fā)布時(shí)間:2024/10/12 python 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python教学视频p_python接口自动化28requestshtml爬虫框架 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

前言

requests庫的好,只有用過的人才知道,最近這個(gè)庫的作者又出了一個(gè)好用的爬蟲框架requests-html。之前解析html頁面用過了lxml和bs4,
requests-html集成了一些常用爬蟲庫的優(yōu)點(diǎn),依然是為人類服務(wù):HTML Parsing for Humans。
目前只支持python3.6

環(huán)境準(zhǔn)備

requests-html的GitHub地址https://github.com/kennethreitz/requests-html,使用pip就能直接安裝了。

pip install requests-html

該庫旨在使解析HTML(例如,抓取Web)盡可能簡單直觀, 有以下優(yōu)勢:

  • 完整的JavaScript支持!

  • CSS Selectors(又名jQuery風(fēng)格,感謝PyQuery)。

  • XPath Selectors,對于膽小的人來說。

  • 模擬用戶代理(如真實(shí)的Web瀏覽器)。

  • 自動(dòng)跟蹤重定向。

  • 連接池和cookie持久性。

  • 令人欣喜的請求體驗(yàn),具有神奇的解析能力。

  • 異步支持

抓頁面url地址

先發(fā)個(gè)get請求,返回response對象,通過r.html.links獲取頁面的全部鏈接,包含一些相對路徑的地址,如果只想獲取絕對路徑的地址,可以用r.html.absolute_links

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://python.org/')

# 獲取頁面上的所有鏈接
all_links = r.html.links
print(all_links)

# 絕對路徑鏈接
all_absolute_links = r.html.absolute_links
print(all_absolute_links)

運(yùn)行結(jié)果, 返回內(nèi)容太多,省略了一部分:

{'http://pycon.blogspot.com/', '/community/', 'http://python.org/dev/peps/', '/events/python-events/831/', , 'http://www.scipy.org'}
{'http://pycon.blogspot.com/', 'https://www.python.org/dev/', 'https://wiki.qt.io/PySide', 'https://www.python.org/events/python-events/817/'}

從返回的結(jié)果可以看出,返回的是set集合,會(huì)自動(dòng)的去除重復(fù)的鏈接地址

xpath定位

用過lxml庫的小伙伴應(yīng)該知道https://www.cnblogs.com/yoyoketang/p/9661273.html,lxml可以支持xpath查找元素對象,requests-html也可以完美的支持xpath

接下來我需要獲取目標(biāo)網(wǎng)站:https://www.cnblogs.com/yoyoketang/tag/django/, 獲取所有的文章標(biāo)題,xpath語法:.//*[@id=’myposts’]/div/div/a

參考代碼

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/tag/django/')
# 只獲取第一個(gè)
f = r.html.xpath(".//*[@id='myposts']/div/div/a", first=True).text
print(f)

# 獲取全部
all = r.html.xpath(".//*[@id='myposts']/div/div/a")
for i in all:
print(i.text) # 獲取文本
print(i.absolute_links) # 獲取鏈接

運(yùn)行結(jié)果

python測試開發(fā)django-49.allow_tags和mark_safe
python測試開發(fā)django-49.allow_tags和mark_safe
{'https://www.cnblogs.com/yoyoketang/p/10659137.html'}
python測試開發(fā)django-48.xadmin上傳圖片django-stdimage
{'https://www.cnblogs.com/yoyoketang/p/10655601.html'}
python測試開發(fā)django-47.xadmin上傳圖片和文件
{'https://www.cnblogs.com/yoyoketang/p/10653878.html'}

xpath方法返回是一個(gè)list,加上 first=True參數(shù)返回第一個(gè)結(jié)果

css定位支持

requests-html同樣支持CSS Selector的方法,把上面案例用css定位也可以實(shí)現(xiàn)同樣效果

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/tag/django/')
# 只獲取第一個(gè) css語法
f = r.html.find(".PostList>div>a", first=True).text
print(f)

# 獲取全部 css語法
all = r.html.find(".PostList>div>a")
for i in all:
print(i.text) # 獲取文本
print(i.absolute_links) # 獲取鏈接

其它方法

from requests_html import HTMLSession
session = HTMLSession()

r = session.get('https://www.cnblogs.com/yoyoketang/tag/django/')

about = r.html.find(".PostList>div", first=True)

# 1.獲取文本
print(about.text)

# 2.獲取html內(nèi)容
print(about.html)

# 3.獲取全部屬性
print(about.attrs)

# 4.獲取鏈接
print(about.absolute_links )

# 5.搜索文字
print(about.search('python測試開發(fā){}和mark_safe')[0])

# 6.繼續(xù)定位子元素
print(about.find('a')) # 返回list element對象

# 7.containing 模糊匹配 只包含'django'文本的對象
a = about.find('a', containing='django')
print(a)

運(yùn)行結(jié)果

python測試開發(fā)django-49.allow_tags和mark_safe
python測試開發(fā)django-49.allow_tags和mark_safe
{'class': ('postTitl2',)}
{'https://www.cnblogs.com/yoyoketang/p/10659137.html'}
django-49.allow_tags
[]
[]

這些只是一些基本的功能,requests-html還可以支持JavaScript渲染頁面,看下一篇python接口自動(dòng)化29-requests-html支持JavaScript渲染頁面

2019年《python3接口自動(dòng)化》課程3月17-4月14開課主講老師:上海-悠悠
上課方式:QQ群視頻在線教學(xué)
上課時(shí)間:每周六、周日晚上20:30-22:30
報(bào)名費(fèi):1000
聯(lián)系QQ:283340479
課表詳情:?2019《Python3接口自動(dòng)化》課程3.17開學(xué)

總結(jié)

以上是生活随笔為你收集整理的python教学视频p_python接口自动化28requestshtml爬虫框架的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。