Python爬蟲Xpath定位數(shù)據(jù)的兩種方法
方法一:直接右鍵,將文章路徑復(fù)制下來點(diǎn)擊Copy full Xpath
使用selenium+lxml中的etree進(jìn)行配合使用,使用etree解析html網(wǎng)頁
import requests from lxml import etree import time import socket import csv from selenium import webdriver from configparser import ConfigParser from selenium.webdriver import Chrome from selenium.webdriver import ChromeOptions #禁止圖片和css加載 chrome_options = webdriver.ChromeOptions() prefs = {"profile.managed_default_content_settings.images": 2} chrome_options.add_experimental_option("prefs", prefs) option = ChromeOptions() option.add_experimental_option('excludeSwitches', ['enable-automation']) # 如果想加載圖片,就把下面第二句話改第一句話,刪掉上面的“禁止圖片和css加載”部分 # wb = Chrome(options=option) wb=webdriver.Chrome(options=chrome_options) #最大化窗口、輸入網(wǎng)址、等待至網(wǎng)頁加載完成(防止元素還沒加載出來就開始爬了這樣自然爬不到數(shù)據(jù)。如果一直加載不出就等10秒,加載好了就立刻結(jié)束等待) wb.maximize_window() wb.get("https://www.tianyancha.com/") wb.implicitly_wait(5)
然后獲取網(wǎng)頁數(shù)據(jù),這里表明哪怕后面出錯(cuò)了,仍然可以延續(xù)wb的位置繼續(xù)控制瀏覽器
data = wb.page_source time.sleep(3) data = wb.page_source time.sleep(3) page_all.append(data) html = etree.HTML(data) company = html.xpath('/html/body/div/div/div[2]/div/div[1]/div[1]/div[3]/div[1]/div[1]/div[1]/h1/text()') print(company )
方法二:使用@制定標(biāo)簽屬性,搜索指定位置
這樣的好處就是,對(duì)于批量處理的網(wǎng)頁,有的標(biāo)簽位置不在同一個(gè)地方,那么我們就是不使用全Xpath路徑,而使用相對(duì)路徑,用@制定某種屬性的標(biāo)簽,下載相關(guān)數(shù)據(jù)
"http://div[@class='mainArea']/ul/li"
使用//div[@class=‘mainArea’]的意思是:從根部(//)查找 class值為 mainArea的Node.
所以,那么就很簡單了 //某元素[@class=‘CLASS值’]
大家可以按照這個(gè)公式來查找 class的元素了。
剩下的 /ul/li 表示的是,繼續(xù)查找 class='mainArea’的div包括的ul元素下面的li 節(jié)點(diǎn)集合。
到此這篇關(guān)于Python爬蟲Xpath定位數(shù)據(jù)的方法的文章就介紹到這了,更多相關(guān)Python爬蟲Xpath定位數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python 安裝庫幾種方法之cmd,anaconda,pycharm詳解
在python項(xiàng)目開發(fā)的過程中,需要安裝大大小小的庫,本文會(huì)提供幾種安裝庫的方法,通過實(shí)例截圖給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下2020-04-04Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法
本篇文章主要介紹了Tensorflow之構(gòu)建自己的圖片數(shù)據(jù)集TFrecords的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02關(guān)于python中readlines函數(shù)的參數(shù)hint的相關(guān)知識(shí)總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python函數(shù)的相關(guān)知識(shí),文章圍繞著python中readlines函數(shù)的參數(shù)hint展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06Python為何不能用可變對(duì)象作為默認(rèn)參數(shù)的值
這篇文章主要介紹了Python為何不能用可變對(duì)象作為默認(rèn)參數(shù)的值,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07PyTorch數(shù)據(jù)讀取的實(shí)現(xiàn)示例
這篇文章主要介紹了PyTorch數(shù)據(jù)讀取的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03