都24年了,你不会还不知道Python 网络爬虫吧!!

5.1 网络爬虫概述:

  • 网络爬虫(Web Spider)又称网络蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。

  • 网络爬虫按照系统结构和实现技术,大致可分为以下集中类型:

    • 通用网络爬虫:就是尽可能大的网络覆盖率,如 搜索引擎(百度、雅虎和谷歌等…)。
    • 聚焦网络爬虫:有目标性,选择性地访问万维网来爬取信息。
    • 增量式网络爬虫:只爬取新产生的或者已经更新的页面信息。特点:耗费少,难度大
    • 深层网络爬虫:通过提交一些关键字才能获取的Web页面,如登录或注册后访问的页面。
  • 注:实际工作中通常是几种爬虫技术结合实现。

图片

图片

5.2 应用场景:

  • 爬虫技术在科学研究Web安全产品研发舆情监控等领域可以做很多事情。
  • 在数据挖掘、机器学习、图像处理等科学研究领域,如果没有数据,则可以通过爬虫从网上抓取;
  • 在Web安全方面,使用爬虫可以对网站是否存在某一漏洞进行批量验证、利用;
  • 在产品研发方面,可以采集各个商城物品价格,为用户提供市场最低价;
  • 在舆情监控方面,可以抓取、分析新浪微博的数据,从而识别出某用户是否为水军

图片

图片

5.3. 学习爬虫前的技术准备:

  • (1). Python基础语言:基础语法、运算符、数据类型、流程控制、函数、对象 模块、文件操作、多线程、网络编程 … 等
  • (2). W3C标准:HTML、CSS、JavaScript、Xpath、JSON
  • (3). HTTP标准:HTTP的请求过程、请求方式、状态码含义,头部信息以及Cookie状态管理
  • (4). 数据库:SQLite、MySQL、MongoDB、Redis …

图片

图片

5.4 关于爬虫的合法性:

几乎每个网站都有一个名为robots.txt的文档,当然也有有些网站没有设定。对于没有设定robots.txt的网站可以通过网络爬虫获取没有口令加密的数据,也就是该网站所有页面的数据都可以爬取。如果网站有文件robots.txt文档,就要判断是否有禁止访客获取数据 如:https://www.taobao.com/robots.txt

图片

图片

网络爬虫使用的技术–数据抓取:

  • 在爬虫实现上,除了scrapy框架之外,python有许多与此相关的库可供使用。其中,在数据抓取方面包括:urllib2(urllib3)、requests、mechanize、selenium、splinter;
  • 其中,urllib2(urllib3)、requests、mechanize用来获取URL对应的原始响应内容;而selenium、splinter通过加载浏览器驱动,获取浏览器渲染之后的响应内容,模拟程度更高。
  • 考虑效率、当然能使用urllib2(urllib3)、requests、mechanize等解决的尽量不用selenium、splinter,因为后者因需要加载浏览器而导致效率较低。
  • 对于数据抓取,涉及的过程主要是模拟浏览器向服务器发送构造好的http请求,常见类型有:get/post。

图片

图片

网络爬虫使用的技术–数据解析:

  • 在数据解析方面,相应的库包括:lxml、beautifulsoup4、re、pyquery。
  • 对于数据解析,主要是从响应页面里提取所需的数据,常用方法有:xpath路径表达式、CSS选择器、正则表达式等。
  • 其中,xpath路径表达式、CSS选择器主要用于提取结构化的数据。而正则表达式主要用于提取非结构化的数据。

关于Python学习指南

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后给大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、自动化办公等学习教程。带你从零基础系统性的学好Python!

👉Python所有方向的学习路线👈

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取)

在这里插入图片描述

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

在这里插入图片描述

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python70个实战练手案例&源码👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉Python大厂面试资料👈

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

在这里插入图片描述

在这里插入图片描述

👉Python副业兼职路线&方法👈

学好 Python 不论是就业还是做副业赚钱都不错,但要学会兼职接单还是要有一个学习规划。

在这里插入图片描述

👉 这份完整版的Python全套学习资料已经上传,朋友们如果需要可以扫描下方CSDN官方认证二维码或者点击链接免费领取保证100%免费

  • 23
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这是一个比较完整的项目,需要多个模块的实现,下面我来分步骤讲解具体实现方法: 1. 网络新闻数据的爬取 网络爬虫需要使用第三方库 requests 和 BeautifulSoup,使用 requests 库获取网页源代码,使用 BeautifulSoup 库对网页源代码进行解析,获取需要的数据。 这里以爬取新浪新闻为例: ```python import requests from bs4 import BeautifulSoup url = 'https://news.sina.com.cn/' res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') news = soup.select('.news-item') for n in news: print(n.select('a')[0].text) print(n.select('a')[0]['href']) ``` 输出结果如下: ``` 新浪新闻 http://news.sina.com.cn/ 国内 https://news.sina.com.cn/china/ 国际 https://news.sina.com.cn/world/ 社会 https://news.sina.com.cn/society/ 地方 https://news.sina.com.cn/local/ ``` 2. 指定页面下获取用户需要的数据内容 用户可以通过命令行参数或者交互式界面指定需要爬取的网页和需要提取的数据内容,可以使用 argparse 和 input 等库实现。 ```python import argparse parser = argparse.ArgumentParser() parser.add_argument('--url', help='the url to crawl') parser.add_argument('--data', help='the data to extract') args = parser.parse_args() url = args.url data = args.data # 爬取网页代码 res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') # 提取需要的数据 if data == 'title': print(soup.title.text) elif data == 'content': print(soup.select('.article')[0].text) else: print('unsupported data type') ``` 3. 分词统计,输出词频使用频率最高的若干个词语 分词和词频统计可以使用 jieba 和 collections 等库实现。 ```python import jieba from collections import Counter content = soup.select('.article')[0].text words = jieba.cut(content) word_counts = Counter(words) for word, count in word_counts.most_common(10): print(word, count) ``` 输出结果如下: ``` , 367 的 161 。 98 、 72 在 53 了 34 和 26 是 24 19 中国 18 ``` 4. 并行处理,提高网络爬虫的执行效率 并行处理可以使用多线程或者多进程实现,可以使用 threading 和 multiprocessing 等库实现。 ```python import threading def crawl(url): res = requests.get(url) soup = BeautifulSoup(res.text, 'html.parser') news = soup.select('.news-item') for n in news: print(n.select('a')[0].text) print(n.select('a')[0]['href']) urls = ['https://news.sina.com.cn/', 'https://news.sina.com.cn/china/', 'https://news.sina.com.cn/world/'] threads = [] for url in urls: t = threading.Thread(target=crawl, args=(url,)) threads.append(t) t.start() for t in threads: t.join() ``` 输出结果如下: ``` 新浪新闻 http://news.sina.com.cn/ 国际 https://news.sina.com.cn/world/ 国内 https://news.sina.com.cn/china/ ``` 以上就是实现一个网络新闻数据爬取系统的大致流程,具体实现还需要根据实际需求进行完善和优化。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值