摘要:注意一點(diǎn),到屏幕上時(shí),需要將中文字符解碼為才能打印,寫入文件是不需要的。
目標(biāo)是收集國(guó)內(nèi)銀行的域名列表,于是在人行的網(wǎng)站上找到了匯總信息,網(wǎng)址是http://www.cbrc.gov.cn/chinese/jrjg/index.html
截圖是
查看一下他的html源碼,需要抓取部分的是:
提煉一下,我們需要提取的是Url和銀行的名稱,那么可以先把源碼中的t刪除,然后用正則表達(dá)式匹配
(.*)
分析完畢,下面是代碼實(shí)現(xiàn)了,第一個(gè)版本如下:
#!/usr/bin/env python # -*- encoding: utf-8 -*- import os,re import mechanize browser = mechanize.Browser() browser.addheaders = [("User-agent", "Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1")] res = browser.open("http://www.cbrc.gov.cn/chinese/jrjg/index.html") data = res.read() data = data.replace(" ","") regx = " (.*) " domainlist = re.findall(regx,data) print len(domainlist) for domain in domainlist: print domain[1].decode("utf-8"), domain[0] with open(u"金融.txt","wb") as fp: str1 = "" for domain in domainlist: str1 += domain[1]+ "----" + domain[0] + "----"+ " " fp.write(str1)
首先聲明一個(gè)瀏覽器對(duì)象,并修改了其http頭的user-agent信息;然后打開(kāi)Url,獲取Html源碼,并將"t"刪除;之后利用Python的正則匹配,將Url和銀行名稱提煉出來(lái);最后將這些信息寫入到文件中。
注意一點(diǎn),print到屏幕上時(shí),需要將中文字符解碼為utf-8才能打印,寫入文件是不需要的。
那么升級(jí)一下,我需要的不是url,而是銀行對(duì)應(yīng)的域名,可以用tld模塊來(lái)提取
import部分添加
from tld import get_tld
在使用tld模塊從url提取域名的過(guò)程中,會(huì)發(fā)現(xiàn)莫名其妙的問(wèn)題,不知道是提取正則提取Url時(shí),url不規(guī)范導(dǎo)致的還是其他原因,總有一些Url沒(méi)法提取域名,于是會(huì)發(fā)生報(bào)錯(cuò)信息,我這邊從新寫了一下,增加容錯(cuò)性
def my_get_tld(url): try: str = get_tld(url = url,fail_silently=True) if str == None: return "" else: return str.encode("utf8") except: return ""
于是寫入文本的代碼修改成
with open(u"金融.txt","wb") as fp: str1 = "" for domain in domainlist: str1 += domain[1]+ "----" + domain[0] + "----" + my_get_tld(url = domain[0]) + " " fp.write(str1)
OK,運(yùn)行之后就可以得到需要的內(nèi)容了
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/38015.html
摘要:下面跟大家詳細(xì)分享一下寫爬蟲抓取靜態(tài)網(wǎng)站的全過(guò)程。而我們上面說(shuō)的元字符都代表一定的規(guī)則和占據(jù)一定的字符。 遇到的需求 前段時(shí)間需要快速做個(gè)靜態(tài)展示頁(yè)面,要求是響應(yīng)式和較美觀。由于時(shí)間較短,自己動(dòng)手寫的話也有點(diǎn)麻煩,所以就打算上網(wǎng)找現(xiàn)成的。 中途找到了幾個(gè)頁(yè)面發(fā)現(xiàn)不錯(cuò),然后就開(kāi)始思考怎么把頁(yè)面給下載下來(lái)。 由于之前還沒(méi)有了解過(guò)爬蟲,自然也就沒(méi)有想到可以用爬蟲來(lái)抓取網(wǎng)頁(yè)內(nèi)容。所以我采取的辦...
摘要:小白看過(guò)來(lái)讓爬蟲成為你的好幫手隨著信息化社會(huì)的到來(lái),人們對(duì)網(wǎng)絡(luò)爬蟲這個(gè)詞已經(jīng)不再陌生?;?dòng)活動(dòng)關(guān)于華為云微認(rèn)證的任何問(wèn)題,均可在下方評(píng)論區(qū)留言。華為云微認(rèn)證每期將送出個(gè)免費(fèi)機(jī)會(huì),獎(jiǎng)項(xiàng)公布時(shí)間月日。 小白看過(guò)來(lái) 讓Python爬蟲成為你的好幫手 隨著信息化社會(huì)的到來(lái),人們對(duì)網(wǎng)絡(luò)爬蟲這個(gè)詞已經(jīng)不再陌生。但什么是爬蟲,如何利用爬蟲為自己服務(wù),這聽(tīng)起來(lái)有些高大上。下面一文帶你走近爬蟲世界,讓即...
摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁(yè)中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個(gè)爬取多頁(yè)面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個(gè)可以下載多頁(yè)面的爬蟲,如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...
摘要:在前面我們講到了和的概念,我們向網(wǎng)站的服務(wù)器發(fā)送一個(gè),返回的的便是網(wǎng)頁(yè)源代碼。渲染頁(yè)面有時(shí)候我們?cè)谟没蜃ト【W(wǎng)頁(yè)時(shí),得到的源代碼實(shí)際和瀏覽器中看到的是不一樣的。所以使用基本請(qǐng)求庫(kù)得到的結(jié)果源代碼可能跟瀏覽器中的頁(yè)面源代碼不太一樣。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---16、Web網(wǎng)頁(yè)基礎(chǔ)下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---18、Session和Cookies 爬蟲,即網(wǎng)...
摘要:,源代碼爬取京東商品列表,以手機(jī)商品列表為例示例網(wǎng)址版本京東手機(jī)列表源代碼下載位置請(qǐng)看文章末尾的源。,抓取結(jié)果運(yùn)行上面的代碼,就會(huì)爬取京東手機(jī)品類頁(yè)面的所有手機(jī)型號(hào)價(jià)格等信息,并保存到本地文件京東手機(jī)列表中。 showImg(https://segmentfault.com/img/bVxXHW); 1,引言 在上一篇《python爬蟲實(shí)戰(zhàn):爬取Drupal論壇帖子列表》,爬取了一個(gè)用...
閱讀 3517·2021-11-22 12:00
閱讀 749·2019-08-29 13:24
閱讀 2966·2019-08-29 11:31
閱讀 2678·2019-08-26 14:00
閱讀 3268·2019-08-26 11:42
閱讀 2536·2019-08-23 18:31
閱讀 866·2019-08-23 18:27
閱讀 2905·2019-08-23 16:58