首先實現關於網頁解析、讀取等操作我們要用到以下幾個模組
import urllib
import urllib2
import re
def test():
f=urllib.urlopen('')
while true:
firstline=f.readline()
print firstline
我們大概要做幾件事情:
首先獲取網頁及其**,這裡我們要實現多頁,即其**會改變,我們傳遞乙個頁數
def getpage(self,pagenum):
try:
url=self.baseurl+self.seelz+'&pn='+str(pagenum)
#建立request物件
request=urllib2.request(url)
response=urllib2.urlopen(request)
#print 'url:'+url
return response.read()
except exception,e:
print e
之後我們要獲取**內容,這裡咱們分為標題和正文。標題每頁都有,所以我們獲取一次就好了。
那我們就匹配reg=re.compile(r'(.*?)。')來抓取這個資訊
標題抓取完我們要開始抓去正文了,我們知道正文會有很多段,所以我們要迴圈的去抓取整個items,這裡我們注意
對於文字的讀寫操作,一定要放在迴圈外。同時加入一些去除超連結、
等機制最後,我們在主函式呼叫即可
完整**:
# -*- coding:utf-8 -*-
import sys
reload(sys)
sys.setdefaultencoding('utf8')
#爬蟲之網頁資訊抓取
#需要的函式方法:urllib,re,urllib2
import urllib
import urllib2
import re
#測試函式->讀取
#def test():
# f=urllib.urlopen('')
# while true:
# firstline=f.readline()
# print firstline
class bdtb:
def __init__(self,baseurl,seelz):
#成員變數
self.baseurl=baseurl
self.seelz='?see_lz='+str(seelz)
#獲取該頁帖子的**
def getpage(self,pagenum):
try:
url=self.baseurl+self.seelz+'&pn='+str(pagenum)
#建立request物件
request=urllib2.request(url)
response=urllib2.urlopen(request)
#print 'url:'+url
return response.read()
except exception,e:
print e
#匹配標題
def title(self):
html=self.getpage(1)
#compile提高正則匹配效率
reg=re.compile(r'(.*?)。')
#返回list列表
items=re.findall(reg,html)
f=open('output.txt','w+')
item=('').join(items)
f.write('\t\t\t\t\t'+item.encode('gbk'))
f.close()
#匹配正文
def text(self,pagenum):
html=self.getpage(pagenum)
#compile提高正則匹配效率
reg=re.compile(r'"d_post_content j_d_post_content ">(.*?)
') #返回list列表
items=re.findall(reg,html)
f=open('output.txt','a+')
#[1:]切片,第乙個元素不需要,去掉。
for i in items[1:]:
#超連結去除
removeaddr=re.compile('|')
#用""替換
i=re.sub(removeaddr,"",i)
#去除 i=i.replace('
','')
f.write('\n\n'+i.encode('gbk'))
f.close()
#呼叫入口
baseurl=''
bdtb=bdtb(baseurl,1)
print '爬蟲正在啟動....'.encode('gbk')
#多頁bdtb.title()
print '抓取標題完畢!'.encode('gbk')
for i in range(1,11):
print '正在抓取第%02d頁'.encode('gbk')%i
bdtb.text(i)
print '抓取正文完畢!'.encode('gbk')
Python爬蟲學習,抓取網頁上的天氣資訊
今天學習了使用python編寫爬蟲程式,從中國天氣網爬取杭州的天氣。使用到了urllib庫和bs4。bs4提供了專門針對html的解析功能,比用re方便許多。coding utf 8 import sys reload sys sys.setdefaultencoding utf 8 from bs...
Python爬蟲 解決動態網頁資訊抓取問題
1.嵌入式網頁爬取右鍵開啟原始碼找到iframe標籤,拿出裡面的src位址 進入src位址中的頁面後不要停留在首頁,首頁 通常是比較特殊的,分析不出來規律,需要我們進入首頁外的任一位址 進入第二頁,我們便可以發現頁面中的規律,僅僅只需要更換curpage後的數字就可以切換到不同的頁面,這樣一來,我們...
Python 網頁爬蟲初試
find find all find name attrs recursive string kwargs find all name attrs recursive string kwargs name 引數可以查詢所有名字為 name 的tag,字串物件會被自動忽略掉.keyword 引數 如果...