正則,xpath,bs4獲取資料的方法

2021-08-21 21:28:04 字數 2374 閱讀 4728

import requests

import re

from lxml import etree

from bs4 import beautifulsoup

from fake_useragent import useragent

headers =

response1 = requests.get('',headers=headers).text # 1.獲取指定資料

print(type(response1))

執行結果:# (1)使用正則時被獲取資料的型別是字串並且可以從一條符合條件的資料中提取多值

a = re.compile(r'.*?.*?

re_list = re.findall(a,response1)

print(re_list) #當一次提取乙個值的時候 返回的資料形式是列表

執行結果:例:['番茄絲瓜蛋湯', '豆豉煎辣椒', '傣味酸筍炒木耳']

a = re.compile(r'.*?.*?

re_list = re.findall(a,response1)

print(re_list) # 一次提取多個值的時候 返回的是資料形式是列表包含元組

執行結果:例:[('番茄絲瓜蛋湯', ''), ('豆豉 煎辣椒', '')]

for value in re_list :

name = value[0]

href = value[1]

print(name)

執行結果:例:番茄絲瓜蛋湯

豆豉煎辣椒

傣味酸筍炒木耳

print(href)

執行結果:例:

#(2)使用xpath方法之前要使用etree 先對資料格式進行轉換

result = etree.html(response1)

print(type(result)) #將資料轉換為元素

執行結果:xpath_list = result.xpath('//img[@class="img"]') # xpath可以從多個符合的標籤中提取乙個值

print(xpath_list) #返回的資料形式是列表,但是列表裡的標籤是元素

執行結果:例:[, , ]

for x in xpath_list: #需要對每個標籤進行遍歷去除想要的值

alt = x.xpath('@alt')[0] #xpath 獲取標籤指定的屬性的值

src = x.xpath('@src')[0]

print(alt)

#執行結果:例:番茄絲瓜蛋湯

#豆豉煎辣椒

#傣味酸筍炒木耳

print(src)

執行結果:例:

# (3)bs4 使用bs4方法之前要先使用beautifulsoup方法對數值進行轉換

soup = beautifulsoup(response1,'lxml')

print(type(soup)) # 將資料轉換為類資料

執行結果:src_list = soup.find_all(class_='img')

print(src_list) #返回的資料形式是列表包含 tag標籤

執行結果:例:

for value in src_list: #遍歷列表裡的每個元素

alt = value.get('alt') #bs需要用get方法獲取標籤指定屬性的值

src= value.get('src')

print(alt)

執行結果:例:番茄絲瓜蛋湯

豆豉煎辣椒

傣味酸筍炒木耳

print(src)

執行結果:例:

python爬蟲的xpath bs4 re方法

1.re正規表示式 正規表示式分析 找開始和結束標籤,兩個標籤之間把想要的內容需要包含進來,然後依次查詢分析。pat r 使用findall方法查詢符合要求的全部內容,放置到乙個列表 divlist re.findall pat,html,re.s re.s 是.匹配包括換行之內的所有字元 2.xp...

JS正則獲取url的引數

獲取url上的引數 假如url是這樣的 要取得引數a的值11 和 b 的值 2。c 3首先要知道url帶的引數都在?後面的查詢串,有兩種方法可以獲取 1.location.search 直接獲取查詢串 location.search a 11 b c 3 2.location.href 和 spli...

snmp4j獲取資料例項

執行結果 request udp get requestid 0,errorstatus success 0 errorindex 0,vbs 1.3.6.1.2.1.1.1.0 null 1.3.6.1.2.1.1.2.0 null no error.1.3.6.1.2.1.1.1.0 respo...