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