Python爬蟲Xpath定位數據的兩種方法
方法一:直接右鍵,將文章路徑復制下來點擊Copy full Xpath
使用selenium+lxml中的etree進行配合使用,使用etree解析html網頁
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) #最大化窗口、輸入網址、等待至網頁加載完成(防止元素還沒加載出來就開始爬了這樣自然爬不到數據。如果一直加載不出就等10秒,加載好了就立刻結束等待) wb.maximize_window() wb.get("https://www.tianyancha.com/") wb.implicitly_wait(5)
然后獲取網頁數據,這里表明哪怕后面出錯了,仍然可以延續(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 )
方法二:使用@制定標簽屬性,搜索指定位置
這樣的好處就是,對于批量處理的網頁,有的標簽位置不在同一個地方,那么我們就是不使用全Xpath路徑,而使用相對路徑,用@制定某種屬性的標簽,下載相關數據
"http://div[@class='mainArea']/ul/li"
使用//div[@class=‘mainArea’]的意思是:從根部(//)查找 class值為 mainArea的Node.
所以,那么就很簡單了 //某元素[@class=‘CLASS值’]
大家可以按照這個公式來查找 class的元素了。
剩下的 /ul/li 表示的是,繼續(xù)查找 class='mainArea’的div包括的ul元素下面的li 節(jié)點集合。
到此這篇關于Python爬蟲Xpath定位數據的方法的文章就介紹到這了,更多相關Python爬蟲Xpath定位數據內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
python 安裝庫幾種方法之cmd,anaconda,pycharm詳解
在python項目開發(fā)的過程中,需要安裝大大小小的庫,本文會提供幾種安裝庫的方法,通過實例截圖給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下2020-04-04Tensorflow之構建自己的圖片數據集TFrecords的方法
本篇文章主要介紹了Tensorflow之構建自己的圖片數據集TFrecords的方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-02-02關于python中readlines函數的參數hint的相關知識總結
今天給大家?guī)淼氖顷P于Python函數的相關知識,文章圍繞著python中readlines函數的參數hint展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06