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

歡迎訪問(wèn) 生活随笔!

生活随笔

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

python

Python 网络爬虫笔记4 -- 信息标记与提取

發(fā)布時(shí)間:2025/3/12 python 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 网络爬虫笔记4 -- 信息标记与提取 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python 網(wǎng)絡(luò)爬蟲(chóng)筆記4 – 信息標(biāo)記與提取


Python 網(wǎng)絡(luò)爬蟲(chóng)系列筆記是筆者在學(xué)習(xí)嵩天老師的《Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取》課程及筆者實(shí)踐網(wǎng)絡(luò)爬蟲(chóng)的筆記。

課程鏈接:Python網(wǎng)絡(luò)爬蟲(chóng)與信息提取
參考文檔:
Requests 官方文檔(英文)
Requests 官方文檔(中文)
Beautiful Soup 官方文檔
re 官方文檔
Scrapy 官方文檔(英文)
Scrapy 官方文檔(中文)


一、信息標(biāo)記


1、XML:標(biāo)簽

  • 標(biāo)簽格式:< name> … < /name>
  • 空標(biāo)簽:< name />
  • 注釋:<!‐‐ ‐‐>
<person><firstName>Tian</firstName><lastName>Song</lastName><address><streetAddr>中關(guān)村南大街5號(hào)</streetAddr><city>北京市</city><zipcode>100081</zipcode></address><prof>Computer System</prof><prof>Security</prof> </person>

2、JSON:有類型的鍵值對(duì)key:value

  • 鍵值對(duì)單個(gè)值:“key” : “value”
  • 鍵值對(duì)多個(gè)值:“key” : [“value1”, “value2”]
  • 嵌套鍵值對(duì):“key” : {“subkey” : “subvalue”}
{ “firstName” : “Tian” , “l(fā)astName” : “Song” , “address” : {“streetAddr” : “中關(guān)村南大街5號(hào)” ,“city” : “北京市” ,“zipcode” : “100081”} , “prof” : [ “Computer System” , “Security” ] }

3、YAML:無(wú)類型鍵值對(duì)key:value

  • 鍵值對(duì)單個(gè)值:key : value
  • 鍵值對(duì)多個(gè)值:
    key : #Comment
    ‐value1
    ‐value2
  • 嵌套鍵值對(duì):
    key :
    subkey : subvalue
firstName : Tian lastName : Song address :streetAddr : 中關(guān)村南大街5號(hào)city : 北京市zipcode : 100081 prof : ‐Computer System ‐Security

二、信息提取


1、信息提取一般方法

形式解析: 完整解析信息的標(biāo)記形式,再提取關(guān)鍵信息
  優(yōu)點(diǎn):信息解析準(zhǔn)確
  缺點(diǎn):提取過(guò)程繁瑣,速度慢

搜索: 無(wú)視標(biāo)記形式,直接搜索關(guān)鍵信息
  優(yōu)點(diǎn):提取過(guò)程簡(jiǎn)潔,速度較快
  缺點(diǎn):提取結(jié)果準(zhǔn)確性與信息內(nèi)容相關(guān)

融合方法: 結(jié)合形式解析與搜索方法,提取關(guān)鍵信息


2、基礎(chǔ)查找方法:find_all

函數(shù)原型:

find_all(name, attrs, recursive, string, **kwargs)

參數(shù):

  • name:要檢索標(biāo)簽的名稱字符串
  • attrs:要檢索標(biāo)簽屬性值的字符串,可標(biāo)注屬性檢索
  • recursive:是否對(duì)子孫全部檢索,默認(rèn)True
  • string:<>…</>中字符串區(qū)域的檢索字符串
  • **kwargs:可選參數(shù)

返回: 檢索結(jié)果的列表

實(shí)例:

import requests from bs4 import BeautifulSoupdef html_search():"""檢索 HTML 內(nèi)容,提取信息:return:"""html = requests.get('https://python123.io/ws/demo.html')soup = BeautifulSoup(html.text, 'html.parser')# 檢索標(biāo)簽print(soup.find_all('a'))print(soup.find_all(['a', 'b']))# 檢索標(biāo)簽屬性print(soup.find_all('p', 'course'))print(soup.find_all(id='link1'))# 檢索字符串print(soup.find_all(string='python'))if __name__ == '__main__':print('running bs:')html_search()

簡(jiǎn)寫:

  • < tag>(…) 等價(jià)于 < tag>.find_all(…)
  • soup(…) 等價(jià)于 soup.find_all(…)

3、其它查找方法

方法說(shuō)明
<>.find()搜索且只返回一個(gè)結(jié)果,同.find_all()參數(shù)
<>.find_parents()在先輩節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_parent()在先輩節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)
<>.find_next_siblings()在后續(xù)平行節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_next_sibling()在后續(xù)平行節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)
<>.find_previous_siblings()在前序平行節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_previous_sibling()在前序平行節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)

總結(jié)

以上是生活随笔為你收集整理的Python 网络爬虫笔记4 -- 信息标记与提取的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

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