1. 程式人生 > >爬蟲入門之————————————————使用xpath語法獲取資料

爬蟲入門之————————————————使用xpath語法獲取資料

準備工作

⚫瞭解爬蟲的資料處理體系結構

⚫ 處理資料的軟體準備 採集到的結構化資料[如 html 網頁文件資料] python 開發環境 lxml 第三方庫 結構化資料基本理論:DOM 模型 

1結構化資料

具備有一定的結構,有預定義規則的資料模型,統稱為結構化資料 如:資料進行格式化展示的 HTML 文件中的資料、資料進行格式化傳輸的 XML 文件中的資料、資料進行格式化整理的 Excel 表格中的資料等等都是結構 化資料;同時按照表中行和列的形式進行資料整理的資料庫中的資料,也是結構化資料 
因為結構化資料有預定義規則的資料模型,所以可以被按照路徑進行解析 爬蟲採集的大都是網路上的網頁資料,就常見的兩種資料格式進行分析【html 網頁文件資料、xml 資料文件】 

2.xlml下載安裝

官方網站:https://lxml.de/ 
下載安裝:pypi 下載地址 https://pypi.org/project/lxml/#files 下載對應的 wheel 包,通過命令的方式直接安裝即可

pip install lxml-4.2.5-cp36-cp36m-win32.whl

注意:下載離線包時切記注意安裝依賴關係[依賴的python 平臺版本和作業系統平臺] 
命令安裝方式:  開啟 windows 的命令列 or unix/linux 的 shell 視窗  通過包管理命令安裝:pip install lxml 

招聘網站的資訊爬取

案例演示:

"""
Version 1.1.0
Author lkk
Email 
[email protected]
date 2018-11-20 15:38 DESC 招聘網站資訊爬取 """ from urllib import request from fake_useragent import UserAgent import chardet,pymysql from lxml import etree # 定義請求頭 def getinfo(): ua = UserAgent() headers = { 'User-agent': ua.random } url_list = [ 'http://sydw.huatu.com/ha/zhaopin/1.html', 'http://sydw.huatu.com/ha/zhaopin/2.html', 'http://sydw.huatu.com/ha/zhaopin/3.html', 'http://sydw.huatu.com/ha/zhaopin/4.html', 'http://sydw.huatu.com/ha/zhaopin/5.html', 'http://sydw.huatu.com/ha/zhaopin/6.html', 'http://sydw.huatu.com/ha/zhaopin/7.html', 'http://sydw.huatu.com/ha/zhaopin/8.html', 'http://sydw.huatu.com/ha/zhaopin/9.html', 'http://sydw.huatu.com/ha/zhaopin/10.html', ] for j in url_list: start_url = request.Request(j, headers=headers) response = request.urlopen(start_url) content = response.read() encoding = chardet.detect(content).get('encoding') content = content.decode(encoding, 'ignore') # print(content) # 通過xpath直接提取其中的某個指定資料 docs = etree.HTML(content) times = docs.xpath("//ul[@class='listSty01']/li/time/text()") city = docs.xpath("//ul[@class='listSty01']/li/lm/a/text()") info = docs.xpath("//ul[@class='listSty01']/li/a/text()") for i in range(len(times)): print(times[i], city[i], info[i]) mysql(times[i], city[i], info[i]) class DownMysql: def __init__(self, times, city, info): self.times = times self.city = city self.info = info self.connect = pymysql.connect( host='localhost', db='data', port=3306, user='root', passwd='123456', charset='utf8', use_unicode=False ) self.cursor = self.connect.cursor() # 儲存資料到MySQL中 def save_mysql(self): sql = "insert into invite(times, city, info) VALUES (%s,%s,%s)" try: self.cursor.execute(sql, (self.times, self.city, self.info)) self.connect.commit() print('資料插入成功') except Exception as e: print(e) # 新建物件,然後將資料傳入類中 def mysql(times, city, info): down = DownMysql(times, city, info) down.save_mysql() if __name__ == '__main__': getinfo()

3.lxml-xpath常見的基本操作


 
 電影天堂的爬取

import requests, chardet
from lxml import html
from fake_useragent import UserAgent

ua = UserAgent()
headers = {'User-agent': ua.random, 'cookie': None}
response = requests.get('http://www.dy2018.com', headers=headers)

content = response.content
encoding = chardet.detect(content).get('encoding')
content = content.decode(encoding, 'ignore')

docs = html.fromstring(content)
links = docs.xpath("//div[@class='co_content222']/ul/li/a")
for link in links:     
    print(link.xpath('string(.)').strip())

相關推薦

爬蟲入門————————————————使用xpath語法獲取資料

準備工作 ⚫瞭解爬蟲的資料處理體系結構 ⚫ 處理資料的軟體準備 採集到的結構化資料[如 html 網頁文件資料] python 開發環境 lxml 第三方庫 結構化資料基本理論:DOM 模型  1結構化資料 具備有一定的結構,有預定義規則的資料模型,統稱為結構化資料

python爬蟲入門————————————————第四節--使用bs4語法獲取資料

1.裝備工作:模組安裝 1.1命令安裝方式:(開發環境:python3.6環境) 官方文件:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.html 官方文件中文版:https://www.crummy.com/

Python爬蟲利器三Xpath語法與lxml庫的用法

blank color idt tab 一段 並且 .text rst 基本用法 前面我們介紹了 BeautifulSoup 的用法,這個已經是非常強大的庫了,不過還有一些比較流行的解析庫,例如 lxml,使用的是 Xpath 語法,同樣是效率比較高的解析方法。如果大家

爬蟲入門爬取靜態網頁表格資料

我們的目標就是將這個表格中的資料爬下來儲存成csv檔案 目標連結:http://www.zuihaodaxue.cn/zuihaodaxuepaiming2018.html 內容解析部分 我更喜歡使用Pyquery 你也可以使用其他的解析方式 #!/usr/bin/env py

python爬蟲學習XPath基本語法

XPath 使用路徑表示式來選取 XML 文件中的節點或節點集。節點是通過沿著路徑(path)或者步(steps)來選取的。 XML例項文件 我們將在下面的例子中使用這個XML文件。 <?xml version="1.0" encoding="ISO-8859-1"?> <

7-13爬蟲入門BeautifulSoup對網頁爬取內容的解析

obj logs utf 進行 pan 審查 pri 全球 網頁爬取 通過beautifulsoup對json爬取的文件進行元素審查,獲取是否含有p標簽 # -*- coding:utf-8 -*- from lxml import html import request

python 爬蟲入門正則表達式 一

簡單 換行 find www. ever page oct search utf python 正則表達式知識點正則 常用符號. : 匹配任意字符,換行符除外* : 匹配前一個字符 0 次或者無限次? : 匹配前一個字符 0次或者1次.* : 貪心算法.*? :非貪心算

爬蟲學習-xpath

path aid ebr ast 函數文本 通過 passport attr sel 1、XPATH使用方法 使用XPATH有如下幾種方法定位元素(相比CSS選擇器,方法稍微多一點): a、通過絕對路徑定位元素(不推薦!) WebElement ele = driver

Python 爬蟲入門爬取妹子圖

Python 爬蟲入門之爬取妹子圖 來源:李英傑  連結: https://segmentfault.com/a/1190000015798452   聽說你寫程式碼沒動力?本文就給你動力,爬取妹子圖。如果這也沒動力那就沒救了。   GitHub 地址:&

Python 爬蟲開發xpath使用

在進行爬蟲開發中,需要的頁面資訊進行解析處理,獲取到需要的關鍵資料。可以利用xpath進行對頁面的xml檔案進行解析處理,獲取到需要的關鍵資料。XPath使用:XPath 可用來在 XML 文件中對元素和屬性進行遍歷.from lxml import etreeimport urllib2req = urll

Java入門基礎語法碎片知識彙總

## 標題Java入門之基礎語法碎片知識彙總 List item 作為一個前端工程師,主要使用的語言是JavaScript,這是一門動態的弱型別語言。

HBase實戰案例使用Scanner獲取資料

HBase 實戰案例之使用Scanner獲取資料 1.Java API 簡介 1.1 getScanner() getScanner方法有三個過載模型,分別如下: getScanner(Scan scan) /** * Returns a sc

Python爬蟲入門五Handler處理器和自定義Opener

Handler處理器和自定義Opener opener是 urllib.OpenerDirector 的例項,我們之前一直都在使用的urlopen,它是一個特殊的opener(也就是模組幫我們構建好的) 但是基本的urlopen()方法不支援代理、cookie等其他的HTTP/HTTPS高階功能。

Python爬蟲入門二HTTP(HTTPS)請求與響應

HTTP和HTTPS HTTP協議(HyperText Transfer Protocol,超文字傳輸協議):是一種釋出和接收 HTML頁面的方法。 HTTPS(Hypertext Transfer Protocol over Secure Socket Layer)簡單講是HTTP的安全版,在HTTP下

SpringBoot 入門二:獲取Properties中的值,通過類配置來替代原SpringXML的配值和注入方式

•application.properties •application.yml person.last-name=\u674E\u56DB person.age=12 person.birth=2017/12/15 person.boss=false person.maps.k

python爬蟲入門————————————————案例演練

原始碼 """ Version 1.1.0 Author lkk Email [email protected] date 2018-11-25 18:39 DESC 電影天堂 """ # https://www.dy2018.com/ from urllib import

python爬蟲入門————————————————第三節requests詳解

1.下載安裝 (1)命令安裝方式 Windows:開啟命令視窗行,直接執行包管理命令安裝          pip install requests   or  essy_install requests

Python爬蟲入門豆瓣短評爬取

採用工具pyCharm,python3,工具的安裝在這就不多說了,之所以採用python3是因為python2只更新維護到2020年。 新建python專案 File-Settings-project interpreter,點右上角+號,安裝requests,lx

python爬蟲入門爬取小說.md

新手教學:用Python爬取小說 我們在學習Python之餘總想著讓其更具趣味性,可以更好地學習。下面我將講解如何去從網站中爬取我們想看的小說。讓我們枯燥無聊的學習生涯稍微多些趣味。 需要只是一點點對requests庫、Beautiful庫及python基礎知識

爬蟲入門驗證碼的處理--------------------------pytesseract庫的使用

前言        目前有許多網站針對爬蟲採取了多種多樣的措施進行反爬蟲,為了不降低使用者的體驗度同時還能將爬蟲攔截在網站之外的一個簡單的措施就是驗證碼。隨著技術的發展,驗證碼的種類也越來越多了,圖形拼接、數字組合、簡單的數學問題、點選圖中的文字等等以