当前位置: 首页 > news >正文

网站开发加维护大概多少钱什么是交换链接

网站开发加维护大概多少钱,什么是交换链接,广州营销型网站建设,金华市开发区人才网本文讲解 Python 爬虫实战案例:抓取百度贴吧(https://tieba.baidu.com/)页面,比如 Python爬虫吧、编程吧,只抓取贴吧的前 5 个页面即可。今天一个毕业学生问到一个问题:不清楚编写爬虫的步骤,不…

本文讲解 Python 爬虫实战案例:抓取百度贴吧(https://tieba.baidu.com/)页面,比如 Python爬虫吧、编程吧,只抓取贴吧的前 5 个页面即可。今天一个毕业学生问到一个问题:不清楚编写爬虫的步骤,不知道如何下手,故简单的给该学生简单总结了一下编写步骤,有了编写步骤,在以后编写爬虫按步骤来,兴许会有事半功倍的效果,本文我们将使用面向对象的编程方法来编写程序。注意,本文只简单做步骤编写,不做数据的分析。步骤如下

寻找URL变化规律

接下来寻找要爬取页面的 URL 规律,搜索“Python爬虫”后,此时贴吧第一页的的 url 如下所示:https://tieba.baidu.com/f?ie=utf-8&kw=python爬虫&fr=search点击第二页,其 url 信息如下:https://tieba.baidu.com/f?kw=python爬虫&ie=utf-8&pn=50点击第三页,url 信息如下:https://tieba.baidu.com/f?kw=python爬虫&ie=utf-8&pn=100重新点击第一页,url 信息如下:https://tieba.baidu.com/f?kw=python爬虫&ie=utf-8&pn=0

如果还不确定,您可以继续多浏览几页。最后您发现 url 具有两个查询参数,分别是 kw 和 pn,并且 pn 参数具有规律性,如下所示:

第n页:pn=(n-1)*50#参数params
pn=(page-1)*50
params={'kw':name,'pn':str(pn)}

url 地址可以简写为:

https://tieba.baidu.com/f?kw=python爬虫&pn=450

编写爬虫程序

以面向对象方法编写爬虫程序时,思路简单、逻辑清楚,非常容易理解,我们可以按照以下步骤进行编写:

1) 请求函数

请求函数最终的结果是返回一个 HTML 对象,以方便后续的函数调用它。

2) 解析函数

解析函数用来解析 HTML 页面,常用的解析模块有正则解析模块、bs4 解析模块。通过分析页面,提取出所需的数据,在后续内容会做详细介绍。

3) 保存数据函数

该函数负责将抓取下来的数据保至数据库中,比如 MySQL、MongoDB 等,或者将其保存为文件格式,比如 csv、txt、excel 等。

4) 入口函数

入口函数充当整个爬虫程序的桥梁,通过调用不同的功能函数,实现数据的最终抓取。入口函数的主要任务是组织数据,比如要搜索的贴吧名、编码 url 参数、拼接 url 地址、定义文件保存路径。

下面以类的形式编写爬虫程序,并在类下编写不同的功能函数,代码如下所示:

from urllib import request
from urllib import parse
from fake_useragent import UserAgent
import time
import random#  定义爬虫类
class TiebaSpider(object):# 初始化url实例属性def __init__(self):self.url = "https://tieba.baidu.com/f?kw={}&pn={}"# 请求函数,得到页面def get_html(self, url):# 使用第三方库设置UAheaders = {'User-Agent': UserAgent().firefox}# 重构请求对象req = request.Request(url=url, headers=headers)response = request.urlopen(req)# 返回整个页面return response.read().decode('utf-8')# 解析函数,此处代码暂时省略def parse_html(self, html):pass# 该函数负责将抓取下来的数据保至数据库中,比如 MySQL、MongoDB 等,或者将其保存为文件格式,比如 csv、txt、excel 等def save_html(self, filename, html):with open(filename, 'w', encoding='utf-8') as f:f.write(html)# 入口函数def run(self):kw = input("请输入要爬取的关键字")parse_kw = parse.quote(kw)begin = int(input("请输入开始页"))end = int(input("请输终止始页"))pn = (begin - 1) * 50for i in range(begin, end + 1):# 重构文件名称filename = f'{kw}_{i}.html'# 拼接urlurl = self.url.format(parse_kw, pn)# 调用保存方法self.save_html(filename, self.get_html(url))print(f"第{i}页抓取成功")# 每爬取一个页面随机休眠2-3秒钟的时间time.sleep(random.randint(2, 3))#以脚本的形式启动爬虫
if __name__ == '__main__':start = time.time()spider = TiebaSpider()spider.run()stop = time.time()print('爬取完成,共耗%.2f时间' % (stop - start))

程序执行后,爬取的文件将会保存至 Pycharm 当前工作目录,输出结果:

请输入要爬取的关键字python
请输入开始页1
请输终止始页5
第1页抓取成功
第2页抓取成功
第3页抓取成功
第4页抓取成功
第5页抓取成功
爬取完成,共耗23.88时间

爬虫程序结构总结

用面向对象的方法编写爬虫程序时,逻辑结构较为固定,总结如下:

# 程序结构
class xxxSpider(object):def __init__(self):# 定义常用变量,比如url或计数变量等def get_html(self):# 获取响应内容函数,使用随机User-Agentdef parse_html(self):# 使用正则表达式来解析页面,提取数据def write_html(self):# 将提取的数据按要求保存,csv、MySQL数据库等def run(self):# 主函数,用来控制整体逻辑if __name__ == '__main__':# 程序开始运行时间spider = xxxSpider()spider.run()

注意:掌握以上编程逻辑有助于您后续的学习。

http://www.ds6.com.cn/news/114481.html

相关文章:

  • 宝安网站建设推广aso排名服务公司
  • wordpress编辑我青岛seo计费
  • 国外服务器做网站阳泉seo
  • 国外产品推广是怎么做的优化营商环境发言材料
  • 网站上搜索的动图怎么做壁纸制作网站教程
  • 购物网站开发案例下载什么是网络营销与直播电商
  • 手机端网站开发多少钱如何制作app软件
  • 网站建设找超速云营销模式方案
  • 网站建设方案一份天津seo推广
  • 网站做多长时间才会成功时事新闻
  • 网站后台无法设置线上营销推广方案模板
  • 禄丰县住房和城乡建设局网站广州网站建设技术外包
  • php建站系统哪个好上海搜索引擎关键词优化
  • php做学校网站免费下载磁力链最佳的搜索引擎
  • 武汉网站建设培训班创新驱动发展战略
  • 网站建设需要哪些软件网站推广系统
  • 网站项目建设申请汇报大纲黄冈便宜的网站推广怎么做
  • 可以做微信推文的网站做网站找哪个公司好
  • wordpress拖动建站南宁最新消息今天
  • 赣州网站制作公司手机制作网站的软件
  • 赵公口网站建设北京网站设计百度公司简介
  • 阿里云域名如何做网站花关键词排名系统
  • 教育网站制作视频360搜索推广
  • 广州天河网站开发公司营销策略包括哪些内容
  • wordpress版权所有在哪里搜索引擎优化的例子
  • 网站上动画视频怎么做泉州seo代理商
  • 岳阳建网站google翻译
  • 美国做电商网站有哪些网络营销的分类
  • 网站哪个服务器好外链代发免费
  • 专业网站建设方案站长工具同大全站