工作也一陣子了陪我四年的電腦居然掛了18.gif

以前都花爸媽的錢這一次終於可以自己買電腦
不管分期付款還是一次付清都好!還是想要找到CP值高的電腦


上網找CP值高的桌電或是筆記型電腦

現在還沒下決定是這台【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證好還是有別台推薦?

現在電腦實在太多了不知道要怎麼挑

當然有人推薦【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證



想了很多最後礙於金錢跟時間的考量我還是選擇買了【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證

價格合理送貨快速真的是一次好的購物體驗XD

而且因為是在網路上販售並沒有在實體店面所以 沒有那些人事費用價格就可以直接回饋價格給網民


而且很多 知名購物商城加入會員以後會不定時送電子折價券,所以其實買到的價格很多時候都比標價便宜很多

如果在購物商城買的話,除了有詳細的介紹以外,更有保障!!而且速度也很快~on09

↓↓↓限量折扣的優惠按鈕↓↓↓





2017筆電評比

























品牌名稱
BSMI容量
  • 5000mAh↑
授權造型
  • 其他




















【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證

討論,推薦,開箱,CP值,熱賣,團購,便宜,優惠,介紹,排行,精選,特價,周年慶,體驗,限時,品牌電腦推薦,電腦主機推薦,桌上型電腦推薦,筆記型電腦推薦,桌上型電腦價格,筆記型電腦價格,電腦推薦2017


↓↓↓現在馬上點擊購買↓↓↓



平板電腦另外在推薦我平時會使用的平台可以比較價格找便宜~~

寶貝用品購物網推薦

Hotels.com

法貝兒嬰兒用品

專門賣寶寶天然的清潔用品~~

Agoda訂房網

MOTHER-K Taiwan

韓國首選婦幼產品,既時尚又實用

Agoda訂房網

MamiBuy媽咪拜

適合給新手爸媽的嬰兒購物網,一應俱全!

各大購物網快速連結

東森購物網 東森購物網 性質大多相同
建議每一家搜尋要購買的品項後
比對出能折價卷能扣最多的一家來消費
保養品、化妝品我比較常在momo購物網買,切記是"購物網"才有正品保障!!
森森購物網 森森購物網
udn買東西
MOMO購物網 MOMO購物網
MOMO購物網 瘋狂麥克 有時候新鮮貨我都在瘋狂麥克找,基本上想找的,瘋狂賣客都會賣~












Python爬蟲實戰:股票數據定向爬蟲

【51CTO活動】8.26 帶你與清華大學、搜狗、京東大咖們一起探討基於算法的IT運維實踐
功能簡介

目標: 獲取上交所和深交所所有股票的名稱和交易信息。 輸出: 保存到文件中。 技術路線: requests bs4 re 語言:python3.5 說明

網站選擇原則: 股票信息靜態存在於html頁面中,非js代碼生成,沒有Robbts協議限制。 選取方法: 打開網頁,查看源代碼,搜索網頁的股票價格數據是否存在於源代碼中。 如打開新浪股票網址:鏈接描述(http://finance.sina.com.cn/realstock/company/sz000877/nc.shtml),如下圖所示:



上圖中左邊為網頁的界面,顯示瞭天山股份的股票價格是13.06。右邊為該網頁的源代碼,在源代碼中查詢13.06發現沒有找到。所以判斷該網頁的數據使用js生成的,不適合本項目。因此換一個網頁。

再打開百度股票的網址:鏈接描述(https://gupiao.baidu.com/stock/sz300023.html),如下圖所示:



從上圖中可以發現百度股票的數據是html代碼生成的,符合我們本項目的要求,所以在本項目中選擇百度股票的網址。

由於百度股票隻有單個股票的信息,所以還需要當前股票市場中所有股票的列表,在這裡我們選擇東方財富網,網址為:鏈接描述(http://quote.eastmoney.com/stocklist.html),界面如下圖所示:



原理分析

查看百度股票每隻股票的網址:https://gupiao.baidu.com/stock/sz300023.html,可以發現網址中有一個編號300023正好是這隻股票的編號,sz表示的深圳交易所。因此我們構造的程序結構如下:

步驟1: 從東方財富網獲取股票列表; 步驟2: 逐一獲取股票代碼,並增加到百度股票的鏈接中,最後對這些鏈接進行逐個的訪問獲得股票的信息; 步驟3: 將結果存儲到文件。 接著查看百度個股信息網頁的源代碼,發現每隻股票的信息在html代碼中的存儲方式如下:



因此,在我們存儲每隻股票的信息時,可以參考上圖中html代碼的存儲方式。每一個信息源對應一個信息值,即采用鍵值對的方式進行存儲。在python中鍵值對的方式可以用字典類型。因此,在本項目中,使用字典來存儲每隻股票的信息,然後再用字典把所有股票的信息記錄起來,最後將字典中的數據輸出到文件中。

代碼編寫

首先是獲得html網頁數據的程序,在這裡不多做介紹瞭,代碼如下:

#獲得html文本defgetHTMLText(url):try:r=requests.get(url)r.raise_for_status()r.encoding=r.apparent_encodingreturnr.textexcept:return 接下來是html代碼解析程序,在這裡首先需要解析的是東方財富網頁面:鏈接描述(http://quote.eastmoney.com/stocklist.html),我們打開其源代碼,如下圖所示:



由上圖可以看到,a標簽的href屬性中的網址鏈接裡面有每隻股票的對應的號碼,因此我們隻要把網址裡面對應股票的號碼解析出來即可。解析步驟如下:

第一步,獲得一個頁面:

html=getHTMLText(stockURL) 第二步,解析頁面,找到所有的a標簽:

soup=BeautifulSoup(html,'html.parser')a=soup.find_all('a') 第三步,對a標簽中的每一個進行遍歷來進行相關的處理。處理過程如下:

1.找到a標簽中的href屬性,並且判斷屬性中間的鏈接,把鏈接後面的數字取出來,在這裡可以使用正則表達式來進行匹配。由於深圳交易所的代碼以sz開頭,上海交易所的代碼以sh開頭,股票的數字有6位構成,所以正則表達式可以寫為[s][hz]d{6}。也就是說構造一個正則表達式,在鏈接中去尋找滿足這個正則表達式的字符串,並把它提取出來。代碼如下:

foriina:href=i.attrs['href']lst.append(re.findall(r [s][hz]d{6} ,href)[0]) 2.由於在html中有很多的a標簽,但是有些a標簽中沒有href屬性,因此上述程序在運行的時候出現異常,所有對上述的程序還要進行try except來對程序進行異常處理,代碼如下:

foriina:try:href=i.attrs['href']lst.append(re.findall(r [s][hz]d{6} ,href)[0])except:continue 從上面代碼可以看出,對於出現異常的情況我們使用瞭continue語句,直接讓其跳過,繼續執行下面的語句。通過上面的程序我們就可以把東方財富網上股票的代碼信息全部保存下來瞭。

將上述的代碼封裝成一個函數,對東方財富網頁面解析的完整代碼如下所示:

defgetStockList(lst,stockURL):html=getHTMLText(stockURL)soup=BeautifulSoup(html,'html.parser')a=soup.find_all('a')foriina:try:href=i.attrs['href']lst.append(re.findall(r [s][hz]d{6} ,href)[0])except:continue 接下來是獲得百度股票網鏈接描述(https://gupiao.baidu.com/stock/sz300023.html)單隻股票的信息。我們先查看該頁面的源代碼,如下圖所示:



股票的信息就存在上圖所示的html代碼中,因此我們需要對這段html代碼進行解析。過程如下:

1.百度股票網的網址為:https://gupiao.baidu.com/stock/

一隻股票信息的網址為:https://gupiao.baidu.com/stock/sz300023.html

所以隻要百度股票網的網址+每隻股票的代碼即可,而每隻股票的代碼我們已經有前面的程序getStockList從東方財富網解析出來瞭,因此對getStockList函數返回的列表進行遍歷即可,代碼如下:

forstockinlst:url=stockURL+stock+ .html 2.獲得網址後,就要訪問網頁獲得網頁的html代碼瞭,程序如下:

html=getHTMLText(url) 3.獲得瞭html代碼後就需要對html代碼進行解析,由上圖我們可以看到單個股票的信息存放在標簽為div,屬性為stock-bets的html代碼中,因此對其進行解析:

soup=BeautifulSoup(html,'html.parser')stockInfo=soup.find('div',attrs={'class':'stock-bets'}) 4.我們又發現股票名稱在bets-name標簽內,繼續解析,存入字典中:

infoDict={}name=stockInfo.find_all(attrs={'class':'bets-name'})[0]infoDict.update({'股票名稱':name.text.split()[0]}) split()的意思是股票名稱空格後面的部分不需要瞭。

5.我們從html代碼中還可以觀察到股票的其他信息存放在dt和dd標簽中,其中dt表示股票信息的鍵域,dd標簽是值域。獲取全部的鍵和值:

keyList=stockInfo.find_all('dt')valueList=stockInfo.find_all('dd') 並把獲得的鍵和值按鍵值對的方式村放入字典中:

foriinrange(len(keyList)):key=keyList[i].textval=valueList[i].textinfoDict[key]=val 6.最後把字典中的數據存入外部文件中:

withopen(fpath,'a',encoding='utf-8')asf:f.write(str(infoDict)+'

') 將上述過程封裝成完成的函數,代碼如下:

defgetStockInfo(lst,stockURL,fpath):forstockinlst:url=stockURL+stock+ .html html=getHTMLText(url)try:ifhtml== :continueinfoDict={}soup=BeautifulSoup(html,'html.parser')stockInfo=soup.find('div',attrs={'class':'stock-bets'})name=stockInfo.find_all(attrs={'class':'bets-name'})[0]infoDict.update({'股票名稱':name.text.split()[0]})keyList=stockInfo.find_all('dt')valueList=stockInfo.find_all('dd')foriinrange(len(keyList)):key=keyList[i].textval=valueList[i].textinfoDict[key]=valwithopen(fpath,'a',encoding='utf-8')asf:f.write(str(infoDict)+'

')except:continue 其中try except用於異常處理。

接下來編寫主函數,調用上述函數即可:

defmain():stock_list_url='http://quote.eastmoney.com/stocklist.html'stock_info_url='https://gupiao.baidu.com/stock/'output_file='D:/BaiduStockInfo.txt'slist=[]getStockList(slist,stock_list_url)getStockInfo(slist,stock_info_url,output_file) 項目完整程序

#-*-coding:utf-8-*-importrequestsfrombs4importBeautifulSoupimporttracebackimportredefgetHTMLText(url):try:r=requests.get(url)r.raise_for_status()r.encoding=r.apparent_encodingreturnr.textexcept:return defgetStockList(lst,stockURL):html=getHTMLText(stockURL)soup=BeautifulSoup(html,'html.parser')a=soup.find_all('a')foriina:try:href=i.attrs['href']lst.append(re.findall(r [s][hz]d{6} ,href)[0])except:continuedefgetStockInfo(lst,stockURL,fpath):count=0forstockinlst:url=stockURL+stock+ .html html=getHTMLText(url)try:ifhtml== :continueinfoDict={}soup=BeautifulSoup(html,'html.parser')stockInfo=soup.find('div',attrs={'class':'stock-bets'})name=stockInfo.find_all(attrs={'class':'bets-name'})[0]infoDict.update({'股票名稱':name.text.split()[0]})keyList=stockInfo.find_all('dt')valueList=stockInfo.find_all('dd')foriinrange(len(keyList)):key=keyList[i].textval=valueList[i].textinfoDict[key]=valwithopen(fpath,'a',encoding='utf-8')asf:f.write(str(infoDict)+'

')count=count+1print( 當前進度:{:.2f}% .format(count*100/len(lst)),end= )except:count=count+1print( 當前進度:{:.2f}% .format(count*100/len(lst)),end= )continuedefmain():stock_list_url='http://quote.eastmoney.com/stocklist.html'stock_info_url='https://gupiao.baidu.com/stock/'output_file='D:/BaiduStockInfo.txt'slist=[]getStockList(slist,stock_list_url)getStockInfo(slist,stock_info_url,output_file)main() 上述代碼中的print語句用於打印爬取的進度。執行完上述代碼後在D盤會出現BaiduStockInfo.txt文件,裡面存放瞭股票的信息。

點贊 0


每日頭條、業界資訊、熱點資訊、八卦爆料,全天跟蹤微博播報。各種爆料、內幕、花邊、資訊一網打盡。百萬互聯網粉絲互動參與,TechWeb官方微博期待您的關註。




↑掃描二維碼

想在手機上看科技資訊和科技八卦嗎?

想第一時間看獨傢爆料和深度報道嗎?

請關註TechWeb官方微信公眾帳號:

1.用手機掃左側二維碼;

2.在添加朋友裡,搜索關註TechWeb。









電腦主機推薦





【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證筆電推薦【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證筆電推薦2017 【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證 電腦價格【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證主機推薦 【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證推薦品牌 【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證筆電評價【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證學生筆電推薦【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證電競筆電推薦【威剛 ADATA】PV120 5100mAh 行動電源 BSMI認證 i7主機推薦 i5主機推薦 您或許有興趣的東西:

    #KEY_LIST_START#
  • $2
  • #KEY_LIST_END#

台灣電動床工廠 電動床

台灣電動床工廠 電動床

AUGI SPORTS|重機車靴|重機車靴推薦|重機專用車靴|重機防摔鞋|重機防摔鞋推薦|重機防摔鞋

AUGI SPORTS|augisports|racing boots|urban boots|motorcycle boots

arrow
arrow

    hfr595f5z5 發表在 痞客邦 留言(0) 人氣()