关于python:爬虫实战urllib2-应用之如何实现对某贴吧数据针对爬取并完成实现代码封装

46次阅读

共计 1376 个字符,预计需要花费 4 分钟才能阅读完成。

1、导入我的项目所须要的的扩大库

1# -*- coding: UTF-8 -*-
2
3# 导入 urllib 用于参数数据编码
4import urllib
5# 导入 urllib2 用于执行外围爬虫
6import urllib2
7
8# 导入 UserAgent 用于生成 UA
9from fake_useragent import UserAgent

2、执行网页申请函数

 1# 执行网页申请
 2def req_url(self,full_url):
 3    headers = {
 4        # 随机生成一个 User-Agent
 5        'User-Agent': self.user_agent.random
 6    }
 7    # 结构 Request 申请对象
 8    request = urllib2.Request(headers=headers, url=full_url)
 9    # 执行申请
10    response = urllib2.urlopen(request)
11    return response.read()

3、保留网页下载的 html 源代码

1# 将爬取下来的 html 源代码保留
2def save_doc(self,html_doc, file_name):
3    print "开始保留文件:", file_name
4    with open(file_name, 'w') as f:
5        f.write(html_doc)
6    print "实现文件:", file_name, "保留"

4、组装残缺的爬虫地址、参数组装等

 1# 结构爬虫环境、并执行
 2def run_spider(self):
 3    for page in range(self.begin, self.end + 1):
 4        # 计算页码
 5        pn = (page - 1) * 50
 6        # 对中文参数进行编码
 7        name = urllib.urlencode({'kw': self.tieba_name})
 8        # 组装残缺的爬虫地址
 9        full_url = self.url + name + '&pn=' + str(pn)
10        # 依据页数定义文件名称
11        file_name = str(page) + '.html'
12        # 执行爬虫网页申请
13        html_doc = self.req_url(full_url)
14        # 保留文件
15        self.save_doc(html_doc, file_name)

5、用户自定义输出参数

1# 用户输出相干数据
2url = 'http://tieba.baidu.com/f?'
3tieba_name = raw_input('请输出要爬取的贴吧名称:')
4begin = int(raw_input('请输出开始页码:'))
5end = int(raw_input('请输出完结页码:'))

实力的晋升是最重要的,进入公众号回复:“贴吧爬虫源代码”,支付贴吧爬虫源代码、快去支付刷题吧~

正文完
 0