怎么運(yùn)行報(bào)錯(cuò)???
# -*- coding:utf-8 -*-
import urllib
import urllib2
def loadPage(url, filename):
? ? """
? ? ? ? 作用:根據(jù)url發(fā)送請(qǐng)求,獲取服務(wù)器響應(yīng)文件
? ? ? ? url: 需要爬取的url地址
? ? ? ? filename : 處理的文件名
? ? """
? ? print "正在下載 " + filename
? ? headers = {"User-Agent" : "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11"}
? ? request = urllib2.Request(url, headers = headers)
? ? return urllib2.urlopen(request).read()
def writePage(html, filename):
? ? """
? ? ? ? 作用:將html內(nèi)容寫入到本地
? ? ? ? html:服務(wù)器相應(yīng)文件內(nèi)容
? ? """
? ? print "正在保存 " + filename
? ? # 文件寫入
? ? with open(filename, "w") as f:
? ? ? ? f.write(html)
? ? print "-" * 30
def tiebaSpider(url, beginPage, endPage):
? ? """
? ? ? ? 作用:貼吧爬蟲調(diào)度器,負(fù)責(zé)組合處理每個(gè)頁面的url
? ? ? ? url : 貼吧url的前部分
? ? ? ? beginPage : 起始頁
? ? ? ? endPage : 結(jié)束頁
? ? """
? ? for page in range(beginPage, endPage + 1):
? ? ? ? pn = (page - 1) * 50
? ? ? ? filename = "第" + str(page) + "頁.html"
? ? ? ? fullurl = url + "&pn=" + str(pn)
? ? ? ? #print fullurl
? ? ? ? html = loadPage(fullurl, filename)
? ? ? ? #print html
? ? ? ? writePage(html, filename)
? ? ? ? print "謝謝使用"
if __name__ == "__main__":
? ? kw = raw_input("請(qǐng)輸入需要爬取的貼吧名:")
? ? beginPage = int(raw_input("請(qǐng)輸入起始頁:"))
? ? endPage = int(raw_input("請(qǐng)輸入結(jié)束頁:"))
? ? url = "http://tieba.baidu.com/f?"
? ? key = urllib.urlencode({"kw": kw})
? ? fullurl = url + key
? ? tiebaSpider(fullurl, beginPage, endPage)
2018-06-05
使用requests吧,urllib感覺不是方便,requests文檔地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
2018-03-13
https://github.com/lzcdev/BaiDuBaiKeSpider,希望對(duì)你有幫助
2018-03-10
應(yīng)該將報(bào)錯(cuò)信息發(fā)上來的 , 沒有具體去看 , 這個(gè)我也寫過, 我在每個(gè)中文字符前面都加上u(表示unicode編碼)
如:?beginPage = int(raw_input(u"請(qǐng)輸入起始頁:")) ?#注意這里