當(dāng)前位置:博客首頁>>Python >> 閱讀正文

python采集新浪熱門微博

作者: 鄭曉 分類: Python 發(fā)布于: 2014-03-05 20:54 瀏覽:8,957 評(píng)論(5)


這是之前學(xué)習(xí)python采集時(shí)的一個(gè)練習(xí)程序,程序基于python3和BeautifulSoup庫。用來抓取新浪微博(熱門微博hot.weibo.com)頁面的信息,包括每條微博的發(fā)布人,微博內(nèi)容和包含的圖片,微博中含有的多張圖片采集為一個(gè)圖片列表。

由于在頁面中沒有發(fā)現(xiàn)比較精確的發(fā)布時(shí)間字段,所以也沒有去弄(目前思路是獲取到它的頁面中的時(shí)間信息,然后做判斷去轉(zhuǎn)換)。這里以熱門笑話的一個(gè)頁面做為采集對(duì)象。


#-*-coding:utf-8 -*-
from bs4 import BeautifulSoup
import urllib.request
#偽造的header
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 5.2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36'}
#抓取地址 讀入頁面源文件
fromurl='http://hot.weibo.com/?v=1899&page=2'
r = urllib.request.Request(url=fromurl, headers=headers)
response=urllib.request.urlopen(r)
page=response.read()
#實(shí)例化BS對(duì)象
soup= BeautifulSoup(page)
#定位到微博信息主節(jié)點(diǎn) 頁面中每一條微博是它的子節(jié)點(diǎn)
tags = soup.find_all(name='div', attrs={'class':'WB_detail'})
#遍歷所有子節(jié)點(diǎn)
for tag in tags:
#從子節(jié)點(diǎn)中找到發(fā)布人
sender = tag.find(name='a', attrs={'class':'WB_name S_func1'}).get_text()
#從子節(jié)點(diǎn)中找到微博內(nèi)容
text = tag.find(name='div', attrs={'class':'WB_text'}).get_text()
#查找節(jié)點(diǎn)下的微博圖片
thumbList = tag.find_all(name='img', attrs={'class':'bigcursor'})
img = []
#如果有圖,把所有圖片的地址放到img數(shù)組中
if thumbList:
for t in thumbList:
img.append(t['src'])
print(sender+text)
print(img)
print()
print()
input()

程序運(yùn)行結(jié)果如圖:
python3+beautifulsoup采集新浪微博

? ? ? ?

本文采用知識(shí)共享署名-非商業(yè)性使用 3.0 中國大陸許可協(xié)議進(jìn)行許可,轉(zhuǎn)載時(shí)請注明出處及相應(yīng)鏈接。

本文永久鏈接: http://yjfs.org.cn/python-cai-ji-xin-lang-re-men-wei-bo.html

python采集新浪熱門微博:目前有5 條留言

用戶評(píng)論頭像 增肥發(fā)表于 2014年03月26日 14:56[回復(fù)]

很不錯(cuò)的思路

用戶評(píng)論頭像 長春駕校發(fā)表于 2014年03月15日 21:47[回復(fù)]

不錯(cuò)不錯(cuò)來看看

用戶評(píng)論頭像 溫州夜網(wǎng)發(fā)表于 2014年03月15日 20:07[回復(fù)]

很棒啊,每天都來看看

用戶評(píng)論頭像 東方CJ發(fā)表于 2014年03月13日 11:19[回復(fù)]

很喜歡這種表達(dá)方式。。。

用戶評(píng)論頭像 長春駕校排名發(fā)表于 2014年03月09日 22:49[回復(fù)]

博客不錯(cuò) 來維持一下

發(fā)表評(píng)論

change vcode