前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【预备知识篇】python网络爬虫初步_01

【预备知识篇】python网络爬虫初步_01

作者头像
统计学家
发布2019-04-10 09:56:53
7830
发布2019-04-10 09:56:53
举报

开始学习python爬虫,这部分不太好讲,网上也有足够多的教程了,这里我们先介绍爬虫基本原理、运行步骤、主要技术以及一个小案例。之后的文章,我们也将主要以爬取我们需要的数据为案例逐步介绍爬虫关键技术。

定义

网络爬虫,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。通俗来说就是模拟用户在浏览器上的操作,从特定网站,自动提取对自己有价值的信息。主要通过查找域名对应的IP地址、向IP对应的服务器发送请求、服务器响应请求,发回网页内容、浏览器解析网页内容四个步骤来实现。

主要技术

数据采集、数据存储、动态网页爬取、APP爬取、验证码破解、模拟登陆、代理试用、爬虫框架、分布式爬取等等。 目前主流的网络爬虫工具是python,涉及的库和工具: 网页爬取:urlib、requests、aiohttp、Selenium、Splash 网页解析:re、lxml、Beautiful Soup、pyquest 数据存储:JSON、XML、CSV、MySQL、MongoDB、Redis Web组件:Flask、Tornado 处理反爬:Tesserocr、ADSLProxy、ProxyPool、PookiesPool APP爬取:Charles、mitmproxy、mitmdump、Appium 爬虫框架:pyspider、Scrapy、Scrapy-Redis、Scrapy-Splash 管理部署:Docker、Scrapyd、Scrapyd-API、Scrapyd-Client、Gerapy

基本的爬虫工作原理

这部分就不再细讲,感兴趣的同学可以看了一下:

https://www.cnblogs.com/zsychanpin/p/7066245.html

网络爬虫的基本工作流程例如以下:

1.选取种子URL; 2.将这些URL放入待抓取URL队列; 3.从待抓取URL队列中取出待抓取在URL。解析DNS,而且得到主机的ip,并将URL相应的网页下载下来,存储进已下载网页库中。 4.分析已抓取URL队列中的URL,分析当中的其它URL,而且将URL放入待抓取URL队列,从而进入下一个循环。

实例

原理听起来比较枯燥,下面我们就先用一个实例来说明一下爬虫的过程,当然这是一个非常简单的小案例,如果将来想要更加复杂的目标,涉及的技术就多了。 最近关注银行股,想要获取某一只银行股当前的市盈率是多少,这就是我们的目标了。这里我们用requests+xpath来实现

首先,我们的信息源是东方财富网,以浦发银行[代码:sh600000]为例

用Chrome浏览器审查元素

我们用xpath的绝对定位方法,把id=gt6-2的部分摘出来。

path即为//*[@id="gt6_2"

源代码如下:

代码语言:javascript
复制
#-*- coding:utf-8 -*-
import requests
from lxml import etree
url = 'http://quote.eastmoney.com/sh600000.html'
content = requests.get(url).content
# 用etree.HTML()解析对象
html = etree.HTML(content)
# 右键copy.Xpath复制后,通过etree.xpath()函数调用
pe=html.xpath('//*[@id="gt6_2"]')
print(pe[0].text)

运行结果: 5.54

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 定义
  • 主要技术
  • 基本的爬虫工作原理
  • 实例
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档