一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

python爬蟲之定位網(wǎng)頁元素的三種方式

 求知881 2023-05-06 發(fā)布于河南

發(fā)布于 2019-03-16 02:42:19

版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)注明出處 https://blog.csdn.net/rankun1/article/details/81357179

在做爬蟲的過程中,網(wǎng)頁元素的定位是比較重要的一環(huán),本文總結(jié)了python爬蟲中比較常用的三種定位網(wǎng)頁元素的方式。

1.普通的BeautifulSoup find系列操作

2.BeautifulSoup css選擇器

3. xpath

這三種方式靈活運(yùn)用,再配合上正則表達(dá)式,沒有什么網(wǎng)頁能難倒你啦。

我們以獲取豆瓣電影top250第一頁的電影標(biāo)題為例來比較:

import requests
 from bs4 import BeautifulSoup
 from lxml import etree
 
 # 通過find定位標(biāo)簽
 # BeautifulSoup文檔:https://www./software/BeautifulSoup/bs4/doc/index.zh.html
 def bs_parse_movies(html):
     movie_list = []
     soup = BeautifulSoup(html, "lxml")
     # 查找所有class屬性為hd的div標(biāo)簽
     div_list = soup.find_all('div', class_='hd')
     # 獲取每個(gè)div中的a中的span(第一個(gè)),并獲取其文本
     for each in div_list:
         movie = each.a.span.text.strip()
         movie_list.append(movie)
 
     return movie_list
 
 # css選擇器定位標(biāo)簽
 # 更多ccs選擇器語法:http://www.w3school.com.cn/cssref/css_selectors.asp
 # 注意:BeautifulSoup并不是每個(gè)語法都支持
 def bs_css_parse_movies(html):
     movie_list = []
     soup = BeautifulSoup(html, "lxml")
     # 查找所有class屬性為hd的div標(biāo)簽下的a標(biāo)簽的第一個(gè)span標(biāo)簽
     div_list = soup.select('div.hd > a > span:nth-of-type(1)')
     # 獲取每個(gè)span的文本
     for each in div_list:
         movie = each.text.strip()
         movie_list.append(movie)
 
     return movie_list
 
 # XPATH定位標(biāo)簽
 # 更多xpath語法:https://blog.csdn.net/gongbing798930123/article/details/78955597
 def xpath_parse_movies(html):
     et_html = etree.HTML(html)
     # 查找所有class屬性為hd的div標(biāo)簽下的a標(biāo)簽的第一個(gè)span標(biāo)簽
     urls = et_html.xpath("http://div[@class='hd']/a/span[1]")
 
     movie_list = []
     # 獲取每個(gè)span的文本
     for each in urls:
         movie = each.text.strip()
         movie_list.append(movie)
 
     return movie_list
 
 def get_movies():
     headers = {
         'user-agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.82 Safari/537.36',
         'Host': 'movie.douban.com'
     }
 
     link = 'https://movie.douban.com/top250'
     r = requests.get(link, headers=headers, timeout=10)
     print("響應(yīng)狀態(tài)碼:", r.status_code)
     if 200 != r.status_code:
         return None
 
     # 三種定位元素的方式:
 
     # 普通BeautifulSoup find
     return bs_parse_movies(r.text)
     # BeautifulSoup css select
     return bs_css_parse_movies(r.text)
     # xpath
     return xpath_parse_movies(r.text)
 
 movies = get_movies()
 print(movies)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    东京热男人的天堂久久综合| 国产av一区二区三区麻豆| 国产毛片av一区二区三区小说| 成人精品一区二区三区在线| 99国产精品国产精品九九| 日本 一区二区 在线| 欧美成人免费一级特黄| 经典欧美熟女激情综合网| 中字幕一区二区三区久久蜜桃| 国产一级精品色特级色国产| 好骚国产99在线中文| 亚洲香艳网久久五月婷婷| 男人和女人干逼的视频| 亚洲妇女黄色三级视频| 欧美韩日在线观看一区| 午夜精品在线观看视频午夜| 日韩在线视频精品视频| 国产色一区二区三区精品视频| 黄片在线观看一区二区三区| 91亚洲精品国产一区| 一区二区欧美另类稀缺| 亚洲性日韩精品一区二区| 欧美黄色黑人一区二区| 蜜臀人妻一区二区三区| 日韩综合国产欧美一区| 亚洲人午夜精品射精日韩 | 熟女白浆精品一区二区| 性感少妇无套内射在线视频| 日本99精品在线观看| 国产又粗又黄又爽又硬的| 东京干男人都知道的天堂| 国产日韩中文视频一区| 色婷婷成人精品综合一区| 色涩一区二区三区四区| 日韩精品日韩激情日韩综合| 国产男女激情在线视频| 中文字幕免费观看亚洲视频| 久久大香蕉精品在线观看 | 欧美日韩综合在线第一页| 俄罗斯胖女人性生活视频| 久热青青草视频在线观看|