最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区

最佳實(shí)踐:python數據采集 爬蟲(chóng)_python爬蟲(chóng)數據采集

優(yōu)采云 發(fā)布時(shí)間: 2022-12-25 05:45

  最佳實(shí)踐:python數據采集 爬蟲(chóng)_python爬蟲(chóng)數據采集

  近年來(lái),python的流行度特別火爆! 在大學(xué)期間,我也進(jìn)行了一些深入的學(xué)習。 畢業(yè)后,我也嘗試過(guò)將python作為自己的職業(yè)方向。 雖然我沒(méi)有如愿成為一名python工程師,但是掌握python也讓我現在的工作發(fā)展和職業(yè)發(fā)展更加得心應手。 便利。 這篇文章主要和大家分享一下我對python爬蟲(chóng)的收獲和感悟。

  Python爬蟲(chóng)是大家最熟悉的python應用方式。 由于python擁有豐富的第三方開(kāi)發(fā)庫,可以進(jìn)行很多工作:如web開(kāi)發(fā)(django)、應用程序開(kāi)發(fā)(tkinter、wxpython、qt)、數據統計和計算(numpy)、圖形圖像處理、深度學(xué)習,人工智能等。我平時(shí)用python爬蟲(chóng)(結合tkinter開(kāi)發(fā)爬蟲(chóng)應用),用django開(kāi)發(fā)一些小的個(gè)人網(wǎng)站。 django框架可以根據實(shí)體類(lèi)自動(dòng)生成管理端,大大提高了系統的開(kāi)發(fā)效率。 有興趣的朋友可以試試。

  一個(gè)成功的爬蟲(chóng)需要對應一個(gè)標準化的網(wǎng)站。 爬蟲(chóng)主要是為了方便我們獲取數據。 如果目標系統的開(kāi)發(fā)不規范,沒(méi)有規則,很難定制一套規則用爬蟲(chóng)爬,爬蟲(chóng)基本都是定制的。 需要針對不同的系統進(jìn)行調整。

  爬蟲(chóng)爬取數據的第一步網(wǎng)站分析目標網(wǎng)站的技術(shù)和數據結構(通過(guò)前端源代碼)。 你可以使用chrome瀏覽器。 目前python爬蟲(chóng)主要面對以下三個(gè)網(wǎng)站:

  1、前后臺網(wǎng)站分離

  前端通過(guò)傳參訪(fǎng)問(wèn)接口,后端返回json數據。 對于這類(lèi)網(wǎng)站,python可以模擬瀏覽器前端,發(fā)送參數然后接收數據,從而完成爬蟲(chóng)數據的目的

  2.靜態(tài)網(wǎng)站

  通過(guò)python的第三方庫(requests、urllib)下載源碼,通過(guò)xpath和regular匹配數據

  3.動(dòng)態(tài)網(wǎng)站

  如果使用第二種方式,下載的源碼就是簡(jiǎn)單的html,源碼中是沒(méi)有數據的,因為這樣的動(dòng)態(tài)網(wǎng)站需要加載js,源碼中才會(huì )有數據。 對于這樣的網(wǎng)站,可以使用自動(dòng)化測試工具selenium 。

  爬蟲(chóng)步驟:

  網(wǎng)站技術(shù)及目標數據結構分析

  根據第一步的分析結構,選擇相應的技術(shù)策略

  抓取數據

  提高性能,提高操作舒適度(結合客戶(hù)端技術(shù)為爬蟲(chóng)定制界面)

  按需清洗數據

  數據存儲,存儲到數據庫,文檔等。

  防撿機制:

  1.當系統判斷屬于同一個(gè)ip的客戶(hù)端多次訪(fǎng)問(wèn)不間斷時(shí),會(huì )拒絕該ip的訪(fǎng)問(wèn)

  解決辦法:動(dòng)態(tài)代理,不斷改變訪(fǎng)問(wèn)目標系統的ip,或者從免費ip代理網(wǎng)站抓取ip,建立ip池。 如果目標數據量不大,可以降低訪(fǎng)問(wèn)速度,避免反拾取

  2.目標系統需要注冊登錄才能訪(fǎng)問(wèn)

  解決方法:利用python的第三方庫(Faker)生成假的登錄名、密碼和*敏*感*詞*,實(shí)現自動(dòng)注冊登錄

  3、需要處理目標系統中目標數據頁(yè)的鏈接,才能進(jìn)入目標數據頁(yè)進(jìn)行訪(fǎng)問(wèn)

  解決方法:無(wú)法正常訪(fǎng)問(wèn)目標網(wǎng)站目標數據頁(yè)的鏈接。 需要研究頁(yè)面中的js腳本,對鏈接進(jìn)行處理。 我個(gè)人在通過(guò)搜狗瀏覽器爬取微信文章時(shí)遇到過(guò)這個(gè)問(wèn)題。 爬取的文章鏈接需要通過(guò)js腳本進(jìn)行拼接,才能獲取正確的鏈接地址

  從哪里獲取目標數據:

  通過(guò)xpath獲取數據的位置,可以使用chrome瀏覽器調試功能獲取對應數據的xpath路徑

  

  通過(guò)正則匹配

  python爬蟲(chóng)常用的第三方庫:

  urllib/requests 請求庫

  Faker 生成假數據

  UserAgent 生成虛假標頭

  etree, beautsoup 匹配數據

  json 處理json數據

  正規圖書(shū)館

  Selenium 自動(dòng)化測試庫

  sqlite3數據庫python3自帶

  抓取靜態(tài)網(wǎng)頁(yè)數據:

  導入請求

  from fake_useragent import UserAgent #provide fake request header

  from lxml import etree #匹配數據

  #抓取目標頁(yè)面的url

  url='***ip****:8085/pricePublic/house/public/index'

  headers = {'User-Agent': str(UserAgent().random)}

  響應=請求。 得到(網(wǎng)址,標題=標題)

  # 獲取網(wǎng)頁(yè)源代碼

  內容=響應.文本

  html = etree. HTML(內容)

  #使用xpath查找對應標簽處的元素值,pageNum在這里爬取對應頁(yè)面的頁(yè)碼

  pageNum=html.xpath('//*[@id="dec"]/div[2]/div/span[1]/text()')

  爬取前后端分離系統的數據:

  導入 json

  導入請求

  #獲取返回的響應

  

  url='***ip***/FindById/22'

  響應 = 請求。 得到(網(wǎng)址)

  #通過(guò)json庫解析json得到返回的數據

  DataNode = json.loads(response.text).get('返回數據').get('數據')[0]

  抓取動(dòng)態(tài)數據:

  以下代碼示例使用 Google 瀏覽器,使用 selenium 庫,并將瀏覽器設置為無(wú)頭模式。 爬蟲(chóng)會(huì )配合瀏覽器在后臺模擬人工操作。 爬蟲(chóng)會(huì )根據代碼中定義的xpath地址,在瀏覽器中找到相應的位置執行操作,使用selenium爬取數據時(shí),需要安裝相應版本的瀏覽器驅動(dòng)

  導入請求

  從 faker 導入 Faker

  從 fake_useragent 導入 UserAgent

  從 lxml 導入 etree

  url='***ip***/FindById/22'

  # 通過(guò)faker庫獲取假郵箱和電話(huà)號碼

  fake=Fakeer('zh_CN')

  電子郵件=假的。 電子郵件()

  tel=fake.phone_number()

  數據={

  “電子郵件”:電子郵件

  }

  #使用requests庫發(fā)送post請求

  響應=請求。 post(url, data, headers=headers)

  代碼=響應.status_code

  內容=響應.文本

  #獲取返回的cookies并轉化為字典

  cookies = requests.utils.dict_from_cookiejar(response.cookies)

  #請求時(shí)帶上cookie

  response=requests.get(url, headers=headers, cookies=cookies)

  作為一個(gè)合法的公民,爬蟲(chóng)只是一種技術(shù)。 當我們使用它來(lái)爬取目標數據時(shí),我們必須遵守一定的規則。 每個(gè)網(wǎng)站的根目錄下都會(huì )有一個(gè)robots.txt(爬蟲(chóng)協(xié)議)文件,它規定了那些網(wǎng)頁(yè)可以被訪(fǎng)問(wèn),并且在爬取公共信息數據時(shí),不能對目標系統造成嚴重的破壞。 因此,我們呼吁大家在使用各種技術(shù)開(kāi)展工作的過(guò)程中,遵守各種技術(shù)法規和制度規范。 ,共同營(yíng)造你我他文明的網(wǎng)絡(luò )環(huán)境!

  操作方法:數據爬取方法

  目前采集數據主要有三種方式:使用有財云軟件爬取數據,優(yōu)采云采集器,使用優(yōu)采云寫(xiě)程序爬取

  1.優(yōu)采云也是一個(gè)知名的采集工具。 它有兩個(gè)版本,一個(gè)是免費采集模板,一個(gè)是云采集(付費)。

  免費的采集模板其實(shí)就是內容采集規則,包括電子商務(wù)、生活服務(wù)、社交媒體、論壇網(wǎng)站等,使用起來(lái)非常采集。

  您也可以自己自定義任務(wù)。 配置好采集任務(wù)后,就可以交給有財優(yōu)采云的云端進(jìn)行采集了。 優(yōu)采云共有5000臺服務(wù)器。 通過(guò)云端多節點(diǎn)并發(fā)采集,采集速度遠超本地采集。 另外可以自動(dòng)切換多個(gè)IP,避免IP被封影響采集。

  

  云采集的功能非常方便。 很多時(shí)候IP自動(dòng)切換和云采集是自動(dòng)化采集的關(guān)鍵。

  2.有優(yōu)采云采集器已有13年的歷史,是一款老牌的采集工具。 它不僅可以用作爬蟲(chóng),還可以用于數據清洗、數據分析、數據挖掘和可視化。 該數據源適用于絕大部分網(wǎng)頁(yè),通過(guò)采集規則抓取網(wǎng)頁(yè)中可見(jiàn)的內容。

  3、在Python爬蟲(chóng)中,基本上有3個(gè)進(jìn)程。

  (1)使用Requests來(lái)抓取內容。 我們可以使用Requests庫來(lái)爬取網(wǎng)頁(yè)信息。 Requests庫可以說(shuō)是Python爬蟲(chóng)的利器,也就是Python的HTTP庫。 通過(guò)這個(gè)庫來(lái)爬取網(wǎng)頁(yè)中的數據是非常方便的,可以幫我們節省很多時(shí)間。

  (2) 使用XPath 解析內容。 XPath是XML Path的縮寫(xiě),即XML Path Language。 它是一種用于確定XML文檔中某部分位置的語(yǔ)言,在開(kāi)發(fā)中常用作小型查詢(xún)語(yǔ)言。 XPath 可以按元素和屬性按位置索引。

  

  (3) 使用Pandas 保存數據。 Pandas 是一種高級數據結構,可以使數據分析變得更加容易。 我們可以使用 Pandas 來(lái)保存爬取的數據。 最后通過(guò)Pandas寫(xiě)入XLS或MySQL等數據庫。

  初學(xué)者推薦使用優(yōu)采云采集工具,簡(jiǎn)單易用

  具體案例:

  需求一:采集一些目標博主發(fā)帖

0 個(gè)評論

要回復文章請先登錄注冊


官方客服QQ群

微信人工客服

QQ人工客服


線(xiàn)

最近中文字幕2019高清,亚洲人成高清在线播放,男生淦哭男生图片动漫有字,国产亚洲精品九九久在线观看,无码av专区丝袜专区