這裡是用來爬取微博熱搜榜的資料,網頁位址為開啟網頁並按下f12進入開發者模式,找到...裡的內容,如圖所示:
href後面的內容即為對應的中文編碼的原始碼,其中很多25應該是干擾字元,後面刪掉解析就可以發現是微博熱搜的標題。我數了下,一共有27個,剛好第乙個標題為「比伯願為賽琳娜捐腎」九個字,乙個漢字佔三個字元,一共27個。
我用的是python3.6.0,開發工具為pycharm2017.2.3,資料庫為mysql。
#-*-coding:utf-8-*-這裡要說明一下,資料庫的連線,db是資料庫的名稱weibo(這個可以自己取名字),charset表示字符集為utf8,表的名稱為hotsearch,裡面有rank,daydate,mindate,title,url為表中的字段,作者未說明這些欄位的定義,我自己定義如下:importurllib, pymysql, requests, re
# 配置資料庫
config=#
鏈結資料庫
conn=pymysql.connect(
**config)
cursor=conn.cursor()
# 獲取熱搜原始碼
weibohotfile=requests.get(
'')
weibohothtml=weibohotfile.text
# 正規表示式匹配
url,找到
title
hotkey=re.compile(
r'td class=\\"td_05\\">)
hotkeylistbe=hotkey.findall(weibohothtml)
rank=1
# 遍歷獲取的
title
列表fortitleinhotkeylistbe:#
去除干擾數字
title=title.replace(
'25','')
url=''+title
title=urllib.parse.unquote(title)
(str
(rank)
+' '+title+' '+' '+url+'\n')
# 執行資料語句
sql='insert into hotsearch (rank, daydate, mindate, title, url) values (%s, curdate(), curtime(), %s, %s)'cursor.execute(sql, (rank, title, url))
rank+=1
conn.commit()
cursor.close()
conn.close()
對於varchar的型別,如果預設,則其編碼模式為latin1,我剛開始不知道,執行py檔案一直報錯,然後網上搜尋了一下,需要將latin1改為utf8,這樣就對了。
最終可在資料庫中檢視匯入成功的資料。
當然,作者還寫了利用bat直接執行py檔案,這樣更快些,我在網上查了下,也學會了:
1、找到.py對應所在的檔案目錄並記錄下來,比如我的就是e:\***\pythonprojects\blogspider
2、建立乙個txt檔案,在檔案中寫入如下內容:
@echo off
cd e:\***\pythonprojects\blogspider
start python crawlerblog01.py
3、將txt檔案改為bat字尾,然後雙擊執行即可。
爬取新浪微博熱搜榜
一 主題式網路爬蟲設計方案 15分 3.主題式網路爬蟲設計方案概述 包括實現思路與技術難點 本案例使用requests庫獲取網頁資料,使用beautifulsoup庫解析頁面內容,再使用pandas庫把爬取的資料輸出,並對資料視覺化,最後進行小結 技術難點 爬取有用的資料,將有礙分析的資料剔除,回歸...
python爬取微博熱搜
1 import requests 2importre3 import bs44 importos5 import datetime 67 url 8 headers 9try 10 r requests.get url,headers headers 11except 12 print 出現了不可...
小鹽巴學習筆記 用Python爬取微博熱搜
前言 一 爬蟲分析 二 完整 總結今天爬取的方式還是正則,但寫法略有不同,量更少 進入後滑鼠右鍵檢視原始碼,看能不能直接看到資料 呀可以直接看到,省事,直接正則一套帶走 頭部,偽裝成瀏覽器訪問 headers response requests.get url url,headers headers...