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

网站开发加维护大概多少钱有没有专门做营销的公司

网站开发加维护大概多少钱,有没有专门做营销的公司,做网站用什么语言和工具,wordpress中文博客主题本文讲解 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/47410.html

相关文章:

  • 学校门户网站建设必要性2023网站推广入口
  • 万网站建设网址导航浏览器下载
  • 欧美风格网站特点网络推广软件有哪些
  • 搜索引擎网站优化推广2021百度热搜年度榜
  • 摄影师 网站 模板seo什么意思中文意思
  • 山东做网站建设的好公司哪家好专业做网站的公司
  • 小白学做网站买什么书淘宝怎么推广自己的产品
  • 佛山网站设计师深圳百度搜索排名优化
  • 做软件的网站php如何把一个关键词优化到首页
  • 如何在自己建设的网站上发表文章开网店
  • 苏州新区做网站品牌推广专员
  • web网站开发培训学校怎样在网上推广自己的产品
  • 二七网建站可以做产品推广的软件有哪些
  • 淘宝客做的比较好的网站无锡seo公司
  • 网站app的区别国内打开google网页的方法
  • 破解织梦做的网站学生个人网页设计模板
  • 个人网站 虚拟主机价格上海百度seo点击软件
  • 吕梁网站建设技能培训网站
  • 个人网站建立品牌营销服务
  • 商务信息网站怎么做开封网络推广哪家好
  • html在线记账网站模板热搜榜百度
  • 惠州企业网站建设选哪家游戏优化大师下载安装
  • 网站开发 微盘网络营销经典案例
  • 网站域名分析营销方式有哪几种
  • 静态的网站合肥网站排名推广
  • wordpress安装主题打不开聊城网站seo
  • qq互联网站备案号品牌策划推广方案
  • 安丘网站建设报价seo网上培训多少钱
  • 潍坊网站建设优化推广seo搜索优化邵阳
  • 网站制作 常州搜索率最高的关键词