




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、主讲人:主讲人:小某小某 自我介绍 p 20XX-20XX XXXX大学XXXX学院 p 20XX-至今 XX大学XXX学院 p 主要研究方向为线上社群及消费者行为,在 学习研究过程中,习得了数据科学相关技术, 如数据采集、数据清理、数据规整、统计分 析.熟悉R、python、MongoDB。 引言 p 爬虫能做什么:微博最近有啥热门话题;淘宝京东上某商品 价格变动邮箱通知;谁点赞最活跃;BBS抢沙发;社交网络 分析;.一句话,只要浏览器有的,你都可以抓可以爬 p 爬虫好学吗?简单的道理:from math import powYouJoinUs = is:TrueIf YouJoinUsis
2、: result = pow(1.01,365) print(result) 37.7834 目 录 准备知识 0101 网页请求 0202 网页解析 0303 开始采集 0404 如何应对反爬 0505 高级爬虫 0606 目 录 准备知识 0101 网页请求 0202 网页解析 0303 开始采集 0404 如何应对反爬 0505 高级爬虫 0606 准备知识 爬虫工作原理 p 蓝色线条:发起请求 (request) p 红色线条:返回响应(response) 准备知识 Python基本知识 p 基本数据类型(str,list,tuple,set,dict) p 循环语句(for循环) p
3、 条件语句 (if else while) p 表达式(如age = 20) 准备知识 字符串str p 字符串:单(双、三)引号及其夹住 的字符 String = 我叫XXX String2:5 XXX 列表list:列表中的元素可以是字符串,数 字,元组,字典,集合下面的写法是不对 的a, b, c (除非a,b, c是变量) p 1, 2, 3, 4, 5 p (1,2),(1,2) p 准备知识 元组tuple: (1,2,3,4) (1, 2, 3, 4) (a, b, c, d) 集合set:a, b, c。集合是不重复的元素组成的一个基本数据类型。 字典dict:在大括号中,数据
4、成对存储,冒号左边是键(key),冒号右边是值(value) 目 录 准备知识 0101 网页解析 0303 开始采集 0404 如何应对反爬 0505 高级爬虫 0606 网页请求 0202 网页请求 u 找规律构建url:通过点击翻看同一个目录下的多个页面,发现规律,定制url u requests库:Requests is an elegant and simple HTTP library for Python, built for human beings.Requests是一个优雅简洁的Python HTTP库,给人类使用。 u requests常用方法: r.text“repos
5、itory”:“open_issues”:0,“url”:“https:/ 求的状态r.status_code #(4开头客户端问题,5开头服务器问题)200 目 录 准备知识 0101 开始采集 0404 如何应对反爬 0505 高级爬虫 0606 网页请求 0202 网页解析 0303 网页解析 u BeautifulSoup 网页解析 tag对象 u bsObj.titleThe Dormouses story u bsObj.headThe Dormouses story u bsObj.a 网页解析 BeautifulSoup 遍历文档树 p #直接子节点 .contents p b
6、sObj.head.contents #输出的为列表The Dormouses story p bsObj.head.contents0 从列表中取出子节点The Dormouses story p #直接子节点 .children p bsObj.head.children #返回生成器,可以迭代取出来 网页解析 find /find_all:find_all(name , attrs) 得到的所有符合条件的结果,返回的是列表格式 pbsObj.findall(a), Lacie, Tillie pbsObj.findall(a, href: http:/ 网页解析 re库-正则表达式 ph
7、tml = 我叫XXX 今年 XX岁 pImport re ppattern = pile(r 我叫(.*?) 今年 (.*?)岁 ) presult = re.findall(pattern, html) presult 网页解析 re 正则表达式常用匹配规则 p . 匹配任意字符(“n”除外) a.c abc p d 数字0-9 adc a1c p * 匹配前一个字符的0或无限次 ab* c ac或abc 或abbc p + 匹配前一个字符的1或无限次 ab+ c abc 或abbc p ? 匹配前一个字符0或1次 abc? ab或abc 目 录 准备知识 0101 如何应对反爬 0505
8、 高级爬虫 0606 网页请求 0202 网页解析 0303 开始采集 0404 开始采集 for语句:用来循环,重复爬虫动作:遍历网址,依次对网址发送请求;解析网页时,返回的是 列表或生成器的对象,通过for遍历对象中的元素并对每个元素进行操作 if条件判断语句:用来解决爬虫过程中哪些要,哪些不要的问题,哪些执行,哪些不执行的问题 try。Except异常处理。 p 情景:你设计的程序在完美情况下当然不会出错,但现实是经常有意外出现,一遇到问题就 程序就退出运行。 p 解决办法:try except异常处理,增强你爬虫的健壮性,解决遇到问题程序停止 开始采集 数据存储:初级的爬虫,大多都是为
9、了获得文本数据,只需要用csv 、txt文件存储即可: import csv csvFile open(/apple/usr/python/data.csv,a+,newline=,encoding=utf-8) writer = csv.writer(csvFile) writer.writerow(colum1,colum2,colum3) csvFile.close() 开始采集 开始采集数据: 目 录 准备知识 0101 高级爬虫 0606 网页请求 0202 网页解析 0303 开始采集 0404 如何应对反爬 0505 如何应对反爬 如何应对反爬: p 伪装成浏览器 p 控制访问频
10、率 p 使用代理IP 目 录 准备知识 0101 网页请求 0202 网页解析 0303 开始采集 0404 如何应对反爬 0505 高级爬虫 0606 高级爬虫 selenium+Firefox(36版):Selenuim默认支持firefox浏览器, 不需要再安装浏览器驱动。selenium对火狐浏览器新版本支持不 好,经常无法自动化操作。经测试36版本,完美运行。 Selenium基本知识:from selenium import webdriver from bs4 import BeautifulSoup 初始化浏览器driver = webdriver.Firefox() 打开某个网址driver.get(url) 高级爬虫 Selenium基本知识:如果网站需要输入登录账号密码。 这里用到firepath找到目标位置的xpath。找到输入账号 框,清除框内信息,再输入你的账号。找到输入密码框, 清除框内信息,再输入你的密码。定位“点击登录”框 的位置的x
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论