中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

域名查詢網(wǎng)站百度seo整站優(yōu)化

域名查詢網(wǎng)站,百度seo整站優(yōu)化,動態(tài)網(wǎng)站開發(fā)常用流程,seo網(wǎng)站代碼bs4介紹和遍歷文檔樹 BeautifulSoup 是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫,解析庫 需要安裝模塊:pip install beautifulsoup4 使用 解析庫可以使用 lxml,速度快(必須安裝) 可以使用python內(nèi)置的 # html…

bs4介紹和遍歷文檔樹

BeautifulSoup 是一個可以從HTML或XML文件中提取數(shù)據(jù)的Python庫,解析庫

需要安裝模塊:pip install beautifulsoup4

使用

解析庫可以使用 lxml,速度快(必須安裝) 可以使用python內(nèi)置的

# html_doc爬出的網(wǎng)頁text
soup = BeautifulSoup(html_doc, 'html.parser')

重點:遍歷文檔樹

遍歷文檔樹:即直接通過標簽名字選擇,特點是選擇速度快,但如果存在多個相同的標簽則只返回第一個

  1. 用法:通過 .遍歷
    # 拿到 以下的第一個title
    res=soup.html.head.title# 拿到第一個p
    res=soup.p
    

  2. 取標簽的名稱
    res=soup.html.head.title.name
    res=soup.p.name
    

  3. 獲取標簽的屬性
    # 標簽的所有屬性
    res=soup.body.a.attrs  # 所有屬性放到字典中 :{'href': 'http://example.com/elsie', 'class': ['sister'], 'id': 'link1'}# 獲取第一個屬性值
    res=soup.body.a.attrs.get('href')
    res=soup.body.a.attrs['href']
    res=soup.body.a['href']
    

  4. 獲取標簽的內(nèi)容
    res=soup.body.a.text
    res=soup.p.text# 這個標簽有且只有文本,才取出來,如果有子孫,就是None
    res=soup.a.string  
    res=soup.p.strings
    

  5. 嵌套選擇
    就是通過.嵌套

  6. 子節(jié)點、子孫節(jié)點
    #p下所有子節(jié)點
    print(soup.p.contents)#得到一個迭代器,包含p下所有子節(jié)點
    print(list(soup.p.children)) #獲取子子孫節(jié)點,p下所有的標簽都會選擇出來
    print(list(soup.p.descendants)) 
    

  7. 父節(jié)點、祖先節(jié)點
    #獲取a標簽的父節(jié)點
    print(soup.a.parent)#找到a標簽所有的祖先節(jié)點,父親的父親,父親的父親的父親...
    print(list(soup.a.parents) )
    

  8. 兄弟節(jié)點
    print(soup.a.next_sibling) #下一個兄弟
    print(soup.a.previous_sibling) #上一個兄弟
    print(list(soup.a.next_siblings)) #下面的兄弟們=>生成器對象
    print(soup.a.previous_siblings) #上面的兄弟們=>生成器對象
    

搜索文檔樹

  1. find_all :找所有 列表
  2. find:找一個 Tag類的對象

find和find_all

五種過濾器: 字符串、正則表達式、列表、True、方法

字符串

可以按標簽名,可以按屬性,可以按文本內(nèi)容

無論按標簽名,按屬性,按文本內(nèi)容 都是按字符串形式查找

# 找到類名叫 story的p標簽
p=soup.find('p')# 可以按標簽名,可以按屬性,可以按文本內(nèi)容
p=soup.find(name='p',class_='story')
obj=soup.find(name='span',text='lqz')
obj=soup.find(href='http://example.com/tillie')# 屬性可以寫成這樣
obj=soup.find(attrs={'class':'title'})

正則

無論按標簽名,按屬性,按文本內(nèi)容 都是按正則形式查找

import re# 找到所有名字以b開頭的所有標簽
obj=soup.find_all(name=re.compile('^b'))# 以y結(jié)尾
obj=soup.find_all(name=re.compile('y$'))obj=soup.find_all(href=re.compile('^http:'))
obj=soup.find_all(text=re.compile('i'))

列表

無論按標簽名,按屬性,按文本內(nèi)容 都是按列表形式查找

# 所有a標簽和標簽放到一個列表里
obj=soup.find_all(name=['p','a'])
obj = soup.find_all(class_=['sister', 'title'])

True

無論按標簽名,按屬性,按文本內(nèi)容 都是按布爾形式查找

obj=soup.find_all(id=True)
obj=soup.find_all(href=True)
obj=soup.find_all(name='img',src=True)

方法

無論按標簽名,按屬性,按文本內(nèi)容 都是按方法形式查找

## 有class但沒有id
def has_class_but_no_id(tag):return tag.has_attr('class') and not tag.has_attr('id')print(soup.find_all(name=has_class_but_no_id))

案例:爬美女圖片

import requests
from bs4 import BeautifulSoupres = requests.get('https://pic.netbian.com/tupian/32518.html')
res.encoding = 'gbk'soup = BeautifulSoup(res.text, 'html.parser')ul = soup.find('ul', class_='clearfix')
img_list = ul.find_all(name='img', src=True)for img in img_list:try:url = img.attrs.get('src')if not url.startwith('http'):url = 'https://pic.netbian.com' + urlres1 = requests.get('url')name = url.split('-')[-1]with open('./img/%s' % name, 'wb') as f:for line in res1.iter_content():f.write(line)except Exception as e:continue

bs4其它用法

  1. 遍歷,搜索文檔樹 ? \dashrightarrow ? bs4還可以修改xml

    • java的配置文件一般喜歡用xml寫
    • .conf
    • .ini
    • .yaml
    • .xml
  2. find_all 其他參數(shù)

    • limit=數(shù)字 找?guī)讞l ,如果寫1 ,就是一條
    • recursive:默認是True,如果改False,在查找時只查找子節(jié)點標簽,不再去子子孫孫中尋找
  3. 搜索文檔樹和遍歷文檔樹可以混用,找屬性,找文本跟之前學(xué)的一樣

css選擇器

  1. id選擇器:#id號
  2. 標簽選擇器:標簽名
  3. 類選擇器:.類名
  4. 屬性選擇器
需要記住的
  1. #id
  2. .sister
  3. head
  4. div>a:# div下直接子節(jié)點a
  5. div a :div下子子孫孫節(jié)點a

一旦會了css選擇器的用法 ? \dashrightarrow ? 以后所有的解析庫都可以使用css選擇器去找
查找:p=soup.select('css選擇器')
復(fù)制參考:https://www.runoob.com/cssref/css-selectors.html

案例
import requests
from bs4 import BeautifulSoupres = requests.get('https://www.cnblogs.com/liuqingzheng/p/16005896.html')
soup = BeautifulSoup(res.text, 'html.parser')# 以后直接復(fù)制即可
p = soup.select('a[title="下載嗶哩嗶哩視頻"]')[0].attrs.get('href')
print(p)

http://www.risenshineclean.com/news/60546.html

相關(guān)文章:

  • 免費做外貿(mào)的網(wǎng)站免費推廣的平臺
  • 網(wǎng)站優(yōu)化公司哪個好推廣app
  • 如何建設(shè)購物網(wǎng)站seo外包顧問
  • 企業(yè)文化手冊信息流優(yōu)化師是什么
  • 建設(shè)京東類的網(wǎng)站需要什么流程營銷渠道名詞解釋
  • 網(wǎng)站建設(shè)項目介紹查收錄網(wǎng)站
  • 長沙做網(wǎng)站價格網(wǎng)絡(luò)運營是什么意思
  • 手機網(wǎng)站欣賞谷歌怎么投放廣告
  • 東莞網(wǎng)站建設(shè)方案表怎么做市場營銷和推廣
  • 網(wǎng)頁設(shè)計與制作實例教程方其桂seo教程網(wǎng)站優(yōu)化
  • 建設(shè)假網(wǎng)站2345瀏覽器網(wǎng)頁版
  • 義烏 網(wǎng)站制作百度注冊公司網(wǎng)站
  • 網(wǎng)站建設(shè)基礎(chǔ)教程如何做線上推廣
  • 純凈水企業(yè)怎樣做網(wǎng)站競價外包
  • 建設(shè)網(wǎng)站需要哪些內(nèi)容福州整站優(yōu)化
  • thinkphp做的上線網(wǎng)站電商培訓(xùn)機構(gòu)
  • 犀牛云 做網(wǎng)站優(yōu)化關(guān)鍵詞排名優(yōu)化公司
  • 長安營銷型網(wǎng)站建設(shè)seo優(yōu)化范疇
  • 注冊一個網(wǎng)站流程關(guān)鍵詞推廣優(yōu)化外包
  • 沈陽高端網(wǎng)站定制百度知道問答平臺
  • 網(wǎng)站上的地圖怎么做小程序開發(fā)教程全集免費
  • 做網(wǎng)站是互聯(lián)網(wǎng)開發(fā)嗎網(wǎng)站權(quán)重怎么看
  • 網(wǎng)站怎么寫容易獲得關(guān)鍵詞排名杭州seo代理公司
  • 網(wǎng)站為什么做等保網(wǎng)站優(yōu)化塔山雙喜
  • java 網(wǎng)站開發(fā)實例教程網(wǎng)絡(luò)推廣的基本渠道
  • 濟南微網(wǎng)站互聯(lián)網(wǎng)營銷師證書
  • 購物網(wǎng)站怎么做代碼網(wǎng)站排名工具
  • 企業(yè)起名字大全最新版處理事件seo軟件
  • 廬江網(wǎng)站建設(shè)百度的總部在哪里
  • 彩票源碼論壇專業(yè)seo站長工具