为了账号安全,请及时绑定邮箱和手机立即绑定

怎么运行报错???

# -*- coding:utf-8 -*-


import urllib

import urllib2

def loadPage(url, filename):

    """

        作用:根据url发送请求,获取服务器响应文件

        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内容写入到本地

        html:服务器相应文件内容

    """

    print "正在保存 " + filename

    # 文件写入

    with open(filename, "w") as f:

        f.write(html)

    print "-" * 30

def tiebaSpider(url, beginPage, endPage):

    """

        作用:贴吧爬虫调度器,负责组合处理每个页面的url

        url : 贴吧url的前部分

        beginPage : 起始页

        endPage : 结束页

    """

    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("请输入需要爬取的贴吧名:")

    beginPage = int(raw_input("请输入起始页:"))

    endPage = int(raw_input("请输入结束页:"))

    url = "http://tieba.baidu.com/f?"

    key = urllib.urlencode({"kw": kw})

    fullurl = url + key

    tiebaSpider(fullurl, beginPage, endPage)






正在回答

3 回答

使用requests吧,urllib感觉不是方便,requests文档地址:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html

0 回复 有任何疑惑可以回复我~

https://github.com/lzcdev/BaiDuBaiKeSpider,希望对你有帮助

0 回复 有任何疑惑可以回复我~

应该将报错信息发上来的 , 没有具体去看 , 这个我也写过, 我在每个中文字符前面都加上u(表示unicode编码)

如: beginPage = int(raw_input(u"请输入起始页:"))  #注意这里

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Python开发简单爬虫
  • 参与学习       227670    人
  • 解答问题       1219    个

本教程带您解开python爬虫这门神奇技术的面纱

进入课程

怎么运行报错???

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信