tnblog
首页
视频
资源
登录
有个性,不需要签名
排名
17
文章
40
粉丝
16
评论
21
Linq or Sql 取树末级节点
剑轩 : 这个方法是真的帅!
Python实例 2-12306抢票(二) 下单
18335584353 : 哥。我也是总返回url":"/leftTicket/init",&quot...
Visual Studio小技巧
剑轩 : [斜眼笑][斜眼笑]开会完了认真看了一遍
C#网络流读取(图片)
风清月 : 把一个图片放到字节数组里边[发呆](`・ω・´)
C#与Java二进制编码转换,补码
风清月 : 我勒个擦.....有时间这种问题很坑很难发现哇o(╥﹏╥)o
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2025TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

Python学习 3-爬虫基本介绍 及简单实例

5587人阅读 2018/11/26 13:17 总访问:286593 评论:0 收藏:0 手机
分类: Python


爬虫

    爬虫就是一只猪,蜘蛛。。 网络蜘蛛。

    互联网是一个网由各个网站组成。无数的蜘蛛就在网上到处爬,根据网址从一个网站爬到另一个网站,把你能看到的所有网站搬回来给你 就就叫爬虫了。

    爬虫能做什么呢:

        a.我们使用的各大搜索引擎其实就是爬虫,把互联网上的的信息爬回来整理,在你搜索关键字的时候给你展示相关的信息。 比如百度,google之类的

        b.你用的各种抢票软件也是爬虫,不停的请求去12306刷新余票 发现有票就帮你下单

        c.你可能使用的各种第三方微博app端,也是爬虫 因为微博上各种广告或者杂七杂八的无用信息太多,爬虫把正常的微博数据爬下来用一个新的APP去显示..

        d.还有你可能在各种电商平台淘宝京东等使用的各种比价、抢券插件,也是爬虫 他们不辞辛苦的日夜不停的搬着数据 存下来,当你去看什么宝贝的时候 就把他以前的数据价格 给你看

        e.还有一些大数据之类的 也是通过爬虫爬来数据 整理分析..

        f.还有刷浏览量啊 回复啊 刷投票啊 之类的。。 也能用爬虫做到

    

    有些网站想被爬虫爬 比如你做的网站想要搜索靠前,你就得想法设法的让百度能更好的识别你的网站  这些东西衍生出来了SEO 

    有些网站不想被爬虫爬 比如12306 为什么12306这么卡..我们手动去点 每秒最多2,3次 而爬虫模拟操作。。 1秒成千上万次,为什么12306的验证码这么奇葩,就是为了防止爬虫,然并卵..

    所以我们不能说爬虫好 或者是爬虫不好。。     技术无罪



 Java,C#一样能写爬虫,为什么要用python,因为Python最牛的地方在于他有着丰富的第三方库,不用再重复造轮子,相对于JAVA、C#开发效率更高,代码了更少,而且入门编写更简单

 只需要一个pip install .. ,然后一个import ...



实例:

    我们就来爬一下博客首页的所有文章的信息

    1.先把博客首页爬下来

    

  1. import urllib.request # 导入内置的爬虫库
  2. def GetContent(url):
  3.     headers = {
  4.     "User-Agent""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
  5.     }
  6.     req =  urllib.request.Request(url,headers=headers) # 封装请求内容,与请求头
  7.     data = urllib.request.urlopen(req).read() # 发起请求
  8.     resolve = data.decode('utf-8')  # 将请求回来的内容编码
  9.     print(resolve) #获取到的网页源码
  10.    
  11. if __name__=="__main__":
  12.     url ='http://47.105.80.21/home/index'
  13.     GetContent(url)

    爬回来的内容:

            



    然后我们在分析一下网站

    可以看到网站的一篇文章就是一个div块 而文章标题和浏览数量 作者信息都包含在里面 

    我们可以用正则解析出我们想要的内容

            

        


    分析之后。。

    

    全都出来啦!

        

    代码: 主要是使用了正则来匹配我们需要的内容 

  1. import urllib.request # 导入内置的爬虫库
  2. import re # 导入正则库
  3. def GetContent(url):
  4.     headers = {
  5.     "User-Agent""Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36"
  6.     }
  7.     req =  urllib.request.Request(url,headers=headers) # 封装请求内容,与请求头
  8.     data = urllib.request.urlopen(req).read() # 发起请求
  9.     resolve = data.decode('utf-8')  # 将请求回来的内容编码
  10.     #print(resolve)
  11.     rule = re.compile('<div style="padding: 0px 12px; background: #fff; margin-top: 2px">.*?color: #445; font-weight: 600;">(.*?)</a>.*?<span class="dtime f_l">(.*?)</span>.*?<a href="#">(\d+)</a>.*?<a href=".*?" target="_blank">(.*?)</a>',re.S)
  12.     arr = re.findall(rule,resolve)
  13.     #print(arr)
  14.     for item in arr:
  15.         print(item[0]+",发布日期:"+item[1]+",作者:"+item[3]+",阅读量:"+item[2])
  16. if __name__=="__main__":
  17.     url ='http://47.105.80.21/home/index'
  18.     GetContent(url)

    正则写得比较渣。。 后面会介绍其他方法来解析我们爬回来的内容,简单强大!!


    酱紫 

    以上




    剑哥正在写限制IP频率反爬的功能,等他写好了 咱们来写写使用代理爬取 


欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739

评价

Python学习 1-安装

Ptyhon非常简单易用的面向对象的脚本语言,跨平台 入门简单python分2个版本 Python2、Python3。Python 2.7 将于 2020 年结...

Python学习 2-基本语法

基础:python脚本语言,不需要编译(像C#、Java、PHP、C++需要编译成机器可识别的语言), 而直接由解释器解释,很多地方类似...

Python实例 1-日志抓取处理 补错(附日志小技巧)

有时候数据出了问题,可以从日志中恢复数据(如果你没记日志..没备份..→_→..)一、日志展示介绍个平常自己用的小方法,如...

Python实例 2-12306抢票(一) 登陆

开坑年关将近,终于对12306下手了,,平安夜撸代码,攻克了12306的登陆 2018-12-24 22:16:00没错 这篇博客就写从零开始的异...

Python安装pip以及使用pip安装requests等模块

pip很简单的介绍pip 是一个现代的,通用的 Python 包管理工具。提供了对 Python 包的查找、下载、安装、卸载的功能。如果想...

Python数据集合区别

列表(list):可读写,值可以重复,有序排列,初始化语法:[&#39;tom&#39;,‘jerry’]元组(tuple):只读,值可以重复,...

Python实例 2-12306抢票(二) 下单

第二篇 刷票与下单1.记住登陆上一篇写了登陆:http://www.tnblog.net/cz/article/details/162 为了方便调试 不让每次登陆都...

使用VS Code开发Python

Vs Code开发Python可以很好的支持代码调试、智能提示、代码对齐等1:下载VS Codehttps://code.visualstudio.com/Downloadvs ...

Python变量与命名

Python使用等号 ( = ) 作为赋值运算符,例如a = 66 就是一条赋值语句,作用就是将66赋值给变量a。Python是弱类型语言,弱类...

Python关键字和内置函数

Python中包含了如下所示的关键字:上面这些关键字都不能作为变量名。另外,Python 3还提供了如下表所示的内置函数:也不能...

Python基础输入和输出

Python使用print()函数向打印程序输出,采用input()函数接收程序输入。print()函数的语法格式如下:print(value,...,sep=&#...

Python基本数据类型

Python包含两大类基本数据类型:数值类型、字符串类型,三大类组合数据类型:集合类型、序列类型和字典类型.数值类型:整型...

Python中通过fake_useragent生成随机UserAgent

fake_useragent第三方库,来实现随机请求头的设置;GitHub ---&gt; https://github.com/hellysmile/fake-useragent安...

Python 升级pip

一条命令即可: python -m pip install --upgrade pip 安装成功后,一般是在python目录下面的Scripts里边的

Python html编码解码

使用方法:html.escape(s)与html.unescape即可 import html s=&quot;&lt;div&gt;jsdlfjsl&lt;/div&gt;&quot; #html编...