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

分享

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)論公約

    類似文章 更多

    国产精品欧美激情在线观看| 久久精品中文字幕人妻中文| 国产精品午夜福利免费在线| 97人妻精品一区二区三区男同| 日本深夜福利在线播放| 日韩精品视频一二三区| 隔壁的日本人妻中文字幕版| 一二区中文字幕在线观看| 欧美中文日韩一区久久| 欧美午夜性刺激在线观看| 亚洲一区二区欧美激情| 国自产拍偷拍福利精品图片| 人妻熟女中文字幕在线| 日本加勒比在线观看一区| 精品偷拍一区二区三区| 日本一区不卡在线观看| 日韩中文字幕免费在线视频| 欧美在线观看视频三区| 日韩欧美好看的剧情片免费| 丰满少妇高潮一区二区| 亚洲国产香蕉视频在线观看| 色哟哟哟在线观看视频| 千仞雪下面好爽好紧好湿全文| 中文字幕日韩欧美亚洲午夜| 99视频精品免费视频| 福利一区二区视频在线| 国产内射一级一片内射高清视频| 国产丝袜美女诱惑一区二区| 日韩欧美中文字幕av| 亚洲欧美中文字幕精品| 又色又爽又无遮挡的视频| 亚洲国产精品久久综合网| 国产一区麻豆水好多高潮| 精品久久少妇激情视频| 97人妻人人揉人人躁人人| 色婷婷成人精品综合一区| 国产高清一区二区不卡| 国产又粗又硬又大又爽的视频 | 深夜视频在线观看免费你懂| 一区二区福利在线视频| 国内真实露脸偷拍视频|