中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當(dāng)前位置: 首頁 > news >正文

傳世手游新開服網(wǎng)站網(wǎng)站首頁不收錄

傳世手游新開服網(wǎng)站,網(wǎng)站首頁不收錄,深圳知名網(wǎng)站建設(shè)價(jià)格,北京好的網(wǎng)站建設(shè)公司一、說明 本周我不得不為客戶抓取一個(gè)網(wǎng)站。我意識到我做得如此自然和迅速,分享它會很有用,這樣你也可以掌握這門藝術(shù)?!久庳?zé)聲明:本文展示了我的抓取做法,如果您有更多相關(guān)做法請?jiān)谠u論中分享】 二、計(jì)劃策略 2.1 策劃 確定您…

一、說明

????????本周我不得不為客戶抓取一個(gè)網(wǎng)站。我意識到我做得如此自然和迅速,分享它會很有用,這樣你也可以掌握這門藝術(shù)。【免責(zé)聲明:本文展示了我的抓取做法,如果您有更多相關(guān)做法請?jiān)谠u論中分享】

二、計(jì)劃策略

2.1 策劃

  1. 確定您的目標(biāo):一個(gè)簡單的 html 網(wǎng)站
  2. 在 Python 中設(shè)計(jì)抓取方案
  3. ?跑起代碼,讓魔術(shù)運(yùn)轉(zhuǎn)

您需要多少時(shí)間來抓取網(wǎng)站?從業(yè)者需要~10分鐘為一個(gè)簡單的html網(wǎng)站準(zhǔn)備Python腳本。

2.2 第一部分:找到你的目標(biāo)(一個(gè)網(wǎng)站)

????????就我而言,我需要從 SWIFT 代碼(或法國 BIC 代碼)中收集銀行名稱。該網(wǎng)站?http://bank-code.net/country/FRANCE-%28FR%29.html?有一個(gè)4000+ SWIFT代碼的列表以及相關(guān)的銀行名稱。問題是它們每頁僅顯示 15 個(gè)結(jié)果。瀏覽所有頁面并一次復(fù)制粘貼 15 個(gè)結(jié)果不是一種選擇。刮擦在這項(xiàng)任務(wù)中派上了用場。

????????首先,使用Chrome“檢查”選項(xiàng)來確定您需要獲取的html部分。將鼠標(biāo)移動到檢查窗口中的不同項(xiàng)目上(右側(cè)),然后跟蹤代碼突出顯示的網(wǎng)站部分(左側(cè))。選擇項(xiàng)目后,在檢查窗口中,使用“復(fù)制/復(fù)制元素”并將 html 代碼粘貼到 python 編碼工具中。

右側(cè)是谷歌瀏覽器的“檢查窗口”,您在使用右鍵單擊/檢查時(shí)獲得

????????就我而言,具有 15 個(gè) SWIFT 代碼的所需項(xiàng)目是一個(gè)“表”

<table class="table table-hover table-bordered" id="tableID" style="margin-bottom: 10px;">
</table>

2.3 第二部分:在 Python 中設(shè)計(jì)抓取方案

a)scrape第一頁

import requests
url = "http://bank-code.net/country/FRANCE-%28FR%29/"
page = requests.get(url)

就是這樣,3行代碼和Python已經(jīng)收到了網(wǎng)頁。現(xiàn)在,您需要正確解析html并檢索所需的項(xiàng)目。?

記住所需的 html :

<table class="table table-hover table-bordered" id="tableID" style="margin-bottom: 10px;">
</table>

它是一個(gè)“table”元素,id為“tableID”。它有一個(gè)id屬性的事實(shí)很好,因?yàn)檫@個(gè)網(wǎng)頁上沒有其他html元素可以有這個(gè)id。這意味著如果我在 html 中查找此 id,除了所需的元素之外,我找不到任何其他內(nèi)容。它節(jié)省了時(shí)間。

讓我們在 Python 中正確地做到這一點(diǎn)

import bs4
soup = bs4.BeautifulSoup(page.content, 'lxml')
table = soup.find(name='table', attrs={'id':'tableID'})

所以現(xiàn)在我們得到了所需的 html 元素。但是我們?nèi)匀恍枰@取 html 中的 SWIFT 代碼,然后將其存儲在 Python 中。我選擇把它存放在熊貓里。數(shù)據(jù)幀對象,但只有一個(gè)列表列表也可以解決。

為此,請返回Chrome檢查窗口,分析html樹的結(jié)構(gòu),并注意您必須轉(zhuǎn)到哪個(gè)元素。就我而言,所需的數(shù)據(jù)位于“tbody”元素中。每個(gè)銀行及其SWIFT代碼都包含在一個(gè)“tr”元素中,每個(gè)“tr”元素有多個(gè)“td”元素?!皌d”元素包含我正在尋找的數(shù)據(jù)。

html 樹可以描述如下:table, tbody, tr, td

我在一行中做到了,如下所示:

result = pd.DataFrame([[td.text for td in row.findAll('td')] for row in table.tbody.findAll('tr')])

b) 準(zhǔn)備自動化

????????現(xiàn)在我們已經(jīng)抓取了第一個(gè)網(wǎng)頁,我們需要考慮如何抓取我們尚未看到的新網(wǎng)頁。我這樣做的方法是復(fù)制人類行為:存儲一頁的結(jié)果,然后轉(zhuǎn)到下一頁。現(xiàn)在讓我們專注于下一個(gè)網(wǎng)頁。

????????在頁面底部,有一個(gè)菜單,允許您進(jìn)入 swift 代碼表的特定頁面。讓我們檢查檢查器窗口中的“下一頁”按鈕。

????????

“>”符號將引導(dǎo)我們進(jìn)入下一頁

這給出了以下 html 元素:

<a href="//bank-code.net/country/FRANCE-%28FR%29/15" data-ci-pagination-page="2" rel="next">&gt;</a>

現(xiàn)在在 Python 中獲取 url 很簡單:

"http:" + soup.find('a', attrs={'rel':'next'}).get('href')

我們快到了。
到目前為止,我們已經(jīng):
- 開發(fā)了一頁表格的抓取 - 確定了下一頁
的 url 鏈接

我們只需要做一個(gè)循環(huán),然后運(yùn)行代碼。我建議遵循以下兩種最佳實(shí)踐:

1. 登陸新網(wǎng)頁時(shí)打印出來:知道您的代碼處于流程的哪個(gè)階段(抓取代碼可以運(yùn)行數(shù)小時(shí))

2.定期保存結(jié)果:避免在出現(xiàn)錯(cuò)誤時(shí)丟失所有抓取的內(nèi)容

只要我不知道何時(shí)停止抓取,我就會使用慣用的“while True:”語法循環(huán)。我在每一步打印出計(jì)數(shù)器值。而且我也在每一步將結(jié)果保存在csv文件中。這實(shí)際上可能會浪費(fèi)時(shí)間,例如,更好的方法是每 10 或 20 步存儲一次數(shù)據(jù)。但我追求快速實(shí)施。

三、完整代碼

代碼是這樣的:

import os, bs4, requests
import pandas as pdPATH = os.path.join("C:\\","Users","xxx","Documents","py") # you need to change to your local path
res = pd.DataFrame()
url = "http://bank-code.net/country/FRANCE-%28FR%29/"
counter = 0def table_to_df(table): return pd.DataFrame([[td.text for td in row.findAll('td')] for row in table.tbody.findAll('tr')])def next_page(soup): return "http:" + soup.find('a', attrs={'rel':'next'}).get('href')while True:print(counter)page = requests.get(url)soup = bs4.BeautifulSoup(page.content, 'lxml')table = soup.find(name='table', attrs={'id':'tableID'})res = res.append(table_to_df(table))res.to_csv(os.path.join(os.path.join(PATH,"table.csv")), index=None, sep=';', encoding='iso-8859–1')url = next_page(soup)counter += 1

完整的代碼(只有26行)可以在這里找到:https://github.com/FelixChop/MediumArticles/blob/master/Scraping_SWIFT_codes_Bank_names.py

http://www.risenshineclean.com/news/53735.html

相關(guān)文章:

  • 做網(wǎng)站用什么后綴好網(wǎng)站模板
  • 淘寶網(wǎng)站建設(shè) 推廣 上海濟(jì)寧百度推廣開戶
  • thinkphp做雙語網(wǎng)站百度知道app官方下載
  • 成都優(yōu)化網(wǎng)站哪家公司好seo優(yōu)化網(wǎng)站的手段
  • 把自己做的網(wǎng)站進(jìn)行app封包騰訊云域名注冊官網(wǎng)
  • 對小米網(wǎng)站的建設(shè)意見青島新聞最新今日頭條
  • 想注冊一個(gè)做網(wǎng)站的公司企業(yè)營銷
  • 開家做網(wǎng)站公司有哪些合肥關(guān)鍵詞排名提升
  • 修改公司網(wǎng)站東莞推廣公司
  • 深圳哪個(gè)公司做網(wǎng)站好網(wǎng)站關(guān)鍵詞seo費(fèi)用
  • 網(wǎng)站制作零基礎(chǔ)學(xué)習(xí)3步打造seo推廣方案
  • 銅仁市城鄉(xiāng)住房與建設(shè)局網(wǎng)站什么是seo?
  • 織夢五彩婚紗源碼網(wǎng)_婚慶策劃網(wǎng)站php源碼今日油價(jià)92汽油價(jià)格
  • 網(wǎng)站開發(fā)情況百度公司排名多少
  • wordpress如何壓縮圖片優(yōu)化推廣服務(wù)
  • 做網(wǎng)站的要求貴陽百度seo點(diǎn)擊軟件
  • 做網(wǎng)站公司哪個(gè)品牌好免費(fèi)推廣的方式有哪些
  • 教做世界美食的網(wǎng)站西安百度快速排名提升
  • 營銷型網(wǎng)站的名詞解釋寶雞seo排名
  • 微信開發(fā)者工具下載官網(wǎng)下載seo軟文代寫
  • u網(wǎng)站建設(shè)蘭州網(wǎng)絡(luò)seo
  • 大學(xué)網(wǎng)站html模板百度競價(jià)托管一月多少錢
  • 湘潭seo 推廣快湘潭磐石網(wǎng)絡(luò)圖片優(yōu)化軟件
  • 有沒有做任務(wù)一樣的網(wǎng)站兼職自媒體推廣渠道
  • 網(wǎng)頁安全站點(diǎn)設(shè)置游戲優(yōu)化軟件
  • 企業(yè)網(wǎng)站模板優(yōu)化中國十大品牌營銷策劃公司
  • 吉安網(wǎng)站建設(shè)優(yōu)化服務(wù)公司網(wǎng)站設(shè)計(jì)
  • 網(wǎng)站建設(shè)維護(hù)合同上海優(yōu)化外包公司排名
  • 響應(yīng)式網(wǎng)站滑動如何注冊百度賬號
  • 手機(jī)建站圖片推廣軟文300字范文