日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

怎么获取上一个html网页传过来的值_爬虫:一个简单实例说明爬虫机制

發布時間:2024/10/14 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 怎么获取上一个html网页传过来的值_爬虫:一个简单实例说明爬虫机制 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

爬蟲,我的簡單理解就是通過寫定的程序,利用計算機的高速的優勢,批量高效的獲取數據的一種機制。通常我們訪問網站是通過瀏覽器,而爬蟲就是通過程序訪問網站,也就是讓程序偽裝成瀏覽器進行訪問。

?Request偽裝瀏覽器發送請求應用實例

import requests

res = requests.get(

url='https://blog.csdn.net/BBJG_001', # 我的CSDN個人主頁

)

print(res.url)

# https://blog.csdn.net/BBJG_001

print(res.text) # 查看整個網頁(html的形式),就是在瀏覽器中查看網頁源代碼所看到的的內容

# 這里只截取開始幾行來顯示

#

#

#

#

#

BeautifulSoup

是一個用來解析html頁面的模塊,可以接收一個html或xml的字符串,通過其中封裝的方法可以很方便的根據標簽以及標簽的屬性獲得html頁面中的標簽所含的內容。

在此之前,爬取的頁面的解析往往是通過正則表達式來完成的,而正則表達式的使用不是那么容易的

這里以我的CSDN個人主頁為例來說明BeautifulSoup模塊的使用

導入支持包

import requests

from bs4 import BeautifulSoup # 解析html網頁的

獲取網頁

res = requests.get(

url='https://blog.csdn.net/BBJG_001', # 我的CSDN個人主頁

)

用獲取的網頁封裝BeautifulSoup對象

soup = BeautifulSoup(res.text, 'html.parser')

在瀏覽器中訪問上面的網頁,按F12查看源碼

看到目錄主體都在class=‘article-list’的div下

展開一個文章項目

?其中一個h4標簽中封裝這標題一行,包含著指向文章詳細內容的鏈接

根據上面的結構從BeautifulSoup中獲取內容

div = soup.find(name='div', attrs={'class': 'article-list'})

# find:找到閾值相匹配的第一個標簽

# 通過class進行find的時候,要格外注意一下,因為不同的標簽的class值可能是相同,

# 這里我通過查看源碼確認了該class值只在這個div才有

# 通過id尋找是一種比較準確的方式,因為通過id匹配是唯一的

# 在class相同的情況下,可以通過多指定幾個屬性的方式增加定位的精確度

h4_list = div.find_all(name='h4')

# find_all:找對與之相匹配的所有標簽

a_list = [h4.find(name='a') for h4 in h4_list] # 從h4列表中提取出a標簽

data = {}

for a in a_list:

link = a.attrs.get('href') # 獲取標簽的某個屬性

content = a.text# 獲取標簽中間的內容

print(link)

# 只給出部分做顯示

# https://blog.csdn.net/BBJG_001/article/details/104587102

# https://blog.csdn.net/BBJG_001/article/details/104587067

# https://blog.csdn.net/BBJG_001/article/details/104587033

獲取圖片舉例

注意這里跟上面沒有什么關系,只是為了介紹這個功能而做的測試

r2 = requests.get('https://imgconvert.csdnimg.cn/aHR0cHM6Ly96eWRzdG9yZS0xMjU4NDc3NzE0LmNvcy5hcC1iZWlqaW5nLm15cWNsb3VkLmNvbS90eXBvcmEvMjAyMDAyMjMxNTE2MDctMTE5ODQ0LnBuZw?x-oss-process=image/format,png')

savepath = r'data/pictures/test01.png'

with open(savepath, 'wb') as f: # 因為下載的是圖片,所以是wb,以二進制流寫入

f.write(r2.content)

# ret.text 將結果ret轉換成字符串,ret.content直接是二進制文件

實際應用中可以find到網頁中獲得的img標簽中的src屬性,根據src獲取文件,并進行保存,注意保存圖片時文件打開方式為wb,f.write()中的傳參為二進制形式

防爬蟲機制

要說明的是,不是所有的網站內容都是可以爬取,或者說不是那么容易爬取的

瀏覽器在發送請求時,除了會攜帶一些服務器所需的認證信息(用戶名/密碼/token等),還會攜帶一些瀏覽器本身的信息,比較簡單的防爬蟲機制就是去檢測發送的信息中的這些瀏覽器信息,如果信息不完善或不匹配,訪問目標可能會駁回通過代碼發送的訪問請求

通過在代碼中追加瀏覽器信息可以騙過防爬蟲措施不到位的網站

山東掌趣網絡科技

總結

以上是生活随笔為你收集整理的怎么获取上一个html网页传过来的值_爬虫:一个简单实例说明爬虫机制的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。