博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
简易爬虫代码实现——基于python2.7
阅读量:6040 次
发布时间:2019-06-20

本文共 1316 字,大约阅读时间需要 4 分钟。

简易爬虫代码实现——基于python2.7

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

import urllib2, urllib, time

class Tiebaspider(object):

    def __init__(self, tieba_name, start_page, end_page):

        self.base_url = 'https://tieba.baidu.com/f?'

        self.name = tieba_name

        self.start = start_page

        self.end = end_page

        self.headers = { "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; WOW64)             AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.86 Safari/537.36",             'Connection': 'keep-alive' }

    # 发送请求

    def send_request(self, url):

        time.sleep(2)

        try:

            request = urllib2.Request(url, headers=self.headers)

            response = urllib2.urlopen(request)

            if response.code == 200:

                return response.read()

        except Exception as e:

            print e

    # 下载文件

    def write_data(self, data, page):

        filename = 'tieba/' + str(page) + '页.html'

        print '%s正在下载...' % filename

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

            f.write(data)

    # 调度方法

    def start_work(self):

        for page in range(self.start, self.end + 1):

            pn = (page - 1) * 50

            params = { 'kw': self.name, 'pn': pn }

            # 字典转码后与base_url进行拼接

            params_str = urllib.urlencode(params)

            url = self.base_url + params_str

            data = self.send_request(url)

            self.write_data(data, page)

if __name__ == '__main__':

    tieba_name = raw_input('请输入贴吧名字:')

    start_page = int(raw_input('开始页:'))

    end_page = int(raw_input('结束页:'))

    spider = Tiebaspider(tieba_name, start_page, end_page)

    spider.start_work()

哈哈哈

转载地址:http://wxghx.baihongyu.com/

你可能感兴趣的文章
{head first} --- networking 3
查看>>
SpringCloud入门之YAML格式文件规范学习
查看>>
深入理解Dalvik虚拟机- 解释器的执行机制
查看>>
android------2018 年初值得关注的 16 个新 Android 库和项目
查看>>
Mac eclipse 连接安卓手机调试 adb
查看>>
国际巨头互联网公司一些运营与管理思路
查看>>
数据库~Mysql里的Explain说明
查看>>
linux arm的存储分布那些事之一【转】
查看>>
跨域详解
查看>>
网卡bonding模式 - bond0、1、4配置
查看>>
<转>LUA语法分析
查看>>
Windows网络接口API函数
查看>>
移除input在type="number"时的上下箭头
查看>>
HBase学习之路 (七)HBase 原理
查看>>
Mac vim“装逼”配置
查看>>
Hbuilder配置识别逍遥安卓模拟器
查看>>
使用jquery.form.js的ajaxsubmit方法提交数据的Bug
查看>>
js_html_input中autocomplete="off"在chrom中失效的解决办法 使用JS模拟锚点跳转 js如何获取url参数 C#模拟httpwebrequest请求_向服...
查看>>
javascript弹层
查看>>
spring mvc:输出json,输出多个json
查看>>