摘要:注意一點(diǎn),到屏幕上時(shí),需要將中文字符解碼為才能打印,寫入文件是不需要的。
目標(biāo)是收集國內(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信息;然后打開Url,獲取Html源碼,并將"t"刪除;之后利用Python的正則匹配,將Url和銀行名稱提煉出來;最后將這些信息寫入到文件中。
注意一點(diǎn),print到屏幕上時(shí),需要將中文字符解碼為utf-8才能打印,寫入文件是不需要的。
那么升級(jí)一下,我需要的不是url,而是銀行對(duì)應(yīng)的域名,可以用tld模塊來提取
import部分添加
from tld import get_tld
在使用tld模塊從url提取域名的過程中,會(huì)發(fā)現(xiàn)莫名其妙的問題,不知道是提取正則提取Url時(shí),url不規(guī)范導(dǎo)致的還是其他原因,總有一些Url沒法提取域名,于是會(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://www.ezyhdfw.cn/yun/38015.html
摘要:下面跟大家詳細(xì)分享一下寫爬蟲抓取靜態(tài)網(wǎng)站的全過程。而我們上面說的元字符都代表一定的規(guī)則和占據(jù)一定的字符。 遇到的需求 前段時(shí)間需要快速做個(gè)靜態(tài)展示頁面,要求是響應(yīng)式和較美觀。由于時(shí)間較短,自己動(dòng)手寫的話也有點(diǎn)麻煩,所以就打算上網(wǎng)找現(xiàn)成的。 中途找到了幾個(gè)頁面發(fā)現(xiàn)不錯(cuò),然后就開始思考怎么把頁面給下載下來。 由于之前還沒有了解過爬蟲,自然也就沒有想到可以用爬蟲來抓取網(wǎng)頁內(nèi)容。所以我采取的辦...
摘要:小白看過來讓爬蟲成為你的好幫手隨著信息化社會(huì)的到來,人們對(duì)網(wǎng)絡(luò)爬蟲這個(gè)詞已經(jīng)不再陌生。互動(dòng)活動(dòng)關(guān)于華為云微認(rèn)證的任何問題,均可在下方評(píng)論區(qū)留言。華為云微認(rèn)證每期將送出個(gè)免費(fèi)機(jī)會(huì),獎(jiǎng)項(xiàng)公布時(shí)間月日。 小白看過來 讓Python爬蟲成為你的好幫手 隨著信息化社會(huì)的到來,人們對(duì)網(wǎng)絡(luò)爬蟲這個(gè)詞已經(jīng)不再陌生。但什么是爬蟲,如何利用爬蟲為自己服務(wù),這聽起來有些高大上。下面一文帶你走近爬蟲世界,讓即...
摘要:在這之前,還是有必要對(duì)一些概念超輕量級(jí)反爬蟲方案后端掘金前言爬蟲和反爬蟲日益成為每家公司的標(biāo)配系統(tǒng)。 爬蟲修煉之道——從網(wǎng)頁中提取結(jié)構(gòu)化數(shù)據(jù)并保存(以爬取糗百文本板塊所有糗事為例) - 后端 - 掘金歡迎大家關(guān)注我的專題:爬蟲修煉之道 上篇 爬蟲修煉之道——編寫一個(gè)爬取多頁面的網(wǎng)絡(luò)爬蟲主要講解了如何使用python編寫一個(gè)可以下載多頁面的爬蟲,如何將相對(duì)URL轉(zhuǎn)為絕對(duì)URL,如何限速,...
摘要:在前面我們講到了和的概念,我們向網(wǎng)站的服務(wù)器發(fā)送一個(gè),返回的的便是網(wǎng)頁源代碼。渲染頁面有時(shí)候我們?cè)谟没蜃ト【W(wǎng)頁時(shí),得到的源代碼實(shí)際和瀏覽器中看到的是不一樣的。所以使用基本請(qǐng)求庫得到的結(jié)果源代碼可能跟瀏覽器中的頁面源代碼不太一樣。 上一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---16、Web網(wǎng)頁基礎(chǔ)下一篇文章:Python3網(wǎng)絡(luò)爬蟲實(shí)戰(zhàn)---18、Session和Cookies 爬蟲,即網(wǎng)...
摘要:,源代碼爬取京東商品列表,以手機(jī)商品列表為例示例網(wǎng)址版本京東手機(jī)列表源代碼下載位置請(qǐng)看文章末尾的源。,抓取結(jié)果運(yùn)行上面的代碼,就會(huì)爬取京東手機(jī)品類頁面的所有手機(jī)型號(hào)價(jià)格等信息,并保存到本地文件京東手機(jī)列表中。 showImg(https://segmentfault.com/img/bVxXHW); 1,引言 在上一篇《python爬蟲實(shí)戰(zhàn):爬取Drupal論壇帖子列表》,爬取了一個(gè)用...
閱讀 3534·2021-11-22 12:00
閱讀 774·2019-08-29 13:24
閱讀 2983·2019-08-29 11:31
閱讀 2703·2019-08-26 14:00
閱讀 3288·2019-08-26 11:42
閱讀 2562·2019-08-23 18:31
閱讀 898·2019-08-23 18:27
閱讀 2923·2019-08-23 16:58