python爬虫ppt

简介 相关

截图

python爬虫ppt

简介

这是python爬虫ppt,包括了自我介绍,引言,准备知识,网页请求,网页解析,开始采集,如何应对反爬,高级爬虫等内容,欢迎点击下载。

python爬虫ppt是由红软PPT免费下载网推荐的一款课件PPT类型的PowerPoint.

Python爬虫快速入门 中南大学 商学院 自我介绍 2009-2013 哈尔滨工业大学经济管理学院 2015-至今 中南大学商学院 主要研究方向为线上社群及消费者行为, 在学习研究过程中,习得了数据科学相关技术, 如数据采集、数据清理、数据规整、统计分析 熟悉R、python、MongoDB。 目录 一、引言 引言 爬虫能做什么? 微博最近有啥热门话题 淘宝京东上某商品价格变动邮箱通知 女/男神最新动态 谁点赞最活跃 BBS抢沙发 社交网络分析 …. 引言 爬虫能做什么 一句话, 只要浏览器有的, 你都可以抓可以爬 引言 爬虫好学吗? >>>from math import pow >>>YouJoinUs = {‘is’:True} >>>If YouJoinUs[‘is’]: >>> result = pow(1.01,365) >>> print(result) 37.7834 目录 一、引言 爬虫工作原理 HTML标签 访问Python中文社区https://zhuanlan.zhihu.com/zimei 返回HTML文件如下: Python基本知识 基本数据类型(str,list,tuple,set,dict) 循环语句 (for循环) 条件语句 (if else while) 表达式 (如age = 20) 字符串str 字符串:单(双、三)引号及其夹住的字符 >>>String = ‘我叫邓旭东’ >>>String[2:5] 邓旭东 列表list [1, 2, 3, 4, 5] [‘1’, ’2’, ’3’, ’4’, ’5’] [‘a’, ’b’, ’c’, ’d’] [(1,2),(1,2)] … 列表中的元素可以是字符串,数字,元组,字典,集合 下面的写法是不对的[a, b, c] (除非a,b, c是变量) 元组tuple (1,2,3,4) (’1’, ‘2’, ‘3’, ‘4’) (‘a’, ’b’, ’c’, ’d’) 集合set {‘a’, ’b’, ’c’} 集合是不重复的元素组成的一个基本数据类型。 字典dict >>>Dict = {‘name’: ‘邓旭东’, ‘age’: 26, ‘gender’: ‘male’} 在大括号中,数据成对存储,冒号左边是键(key),冒号右边是值(value) >>>Dict[‘age’] 26 for循环 >>>for x in [‘1’, ’2’, ’3’]: >>> print(x) 1 2 3 目录 一、引言 找规律构建url 通过点击翻看同一个目录 下的多个页面,发现规律, 定制url 发现规律定制url 发现规律定制url 构建网址 Base_url = ‘https://movie.douban.com/tag?start={num}’ for page in range(1,94,1): Num = page - 1 url = Base_url.format(num=Num*20) print(url) ‘https://movie.douban.com/tag?start=0’ ‘https://movie.douban.com/tag?start=20’ ‘https://movie.douban.com/tag?start=40’ …… requests库 Requests is an elegant and simple HTTP library for Python, built for human beings. Requests是一个优雅简洁的Python HTTP库,给人类使用。 requests常用方法 最普通的访问 url = ‘http://www.jianshu.com/u/1562c7f164’ r = requests.get(url) 伪装成浏览器的访问 Headers = {‘User-Agent’: ’Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36’} r = requests.get(url,headers = Headers) requests常用方法 使用cookie访问 Cookie = {‘Cookie’: ’UM_distinctid=15ab64ecfd6592-0afad5b368bd69-1d3b6853-13c680-15ab64ecfd7b6; remember_user_token=W1sxMjEzMTM3XSwiJDJhJDEwJHhjYklYOGl2eTQ0Yi54WC5seVh2UWUiLCIxNDg5ODI2OTgwLjg4ODQyODciXQ%3D%3D---ac835770a030c0595b2993289e39c37d82ea27e2; CNZZDATA1258679142=559069578-1488626597-https%253A%252F%252Fwww.baidu.com%252F%7C1489923851’} r = requests.get(url, cookies=cookies) requests常用方法 >>> r.text u‘[{“repository”:{“open_issues”:0,“url”:“https://github.com/... #返回请求的状态 >>>r.status_code #(4开头客户端问题,5开头服务器问题) 200 目录 一、引言 如何解析网页 火狐Firebug/谷歌的开发者工具 BeaufifulSoup/re库 Python基本知识 BeautifulSoup >>>bsObj = BeautifulSoup(html, “html.parser”) 格式化输出 bsObj对象的内容 tag对象 >>>bsObj.title ‘ ’ >>>bsObj.head ‘ ’ >>>bsObj.a ‘’ BeautifulSoup –遍历文档树 >>>#直接子节点 .contents >>>bsObj.head.contents  #输出的为列表 [‘ ’] >>>bsObj.head.contents[0] 从列表中取出子节点 ‘ ’ BeautifulSoup –遍历文档树 >>>#直接子节点 .children >>>bsObj.head.children #返回生成器,可以迭代取出来 >>>for child in soup.body.children: >>> print child ‘

The Dormouse‘s storyzGh红软基地

’ ‘

Once upon a time there were three little sisters; and their names were’ ‘’ ‘Lacie and’ ‘Tillie’ ‘and they lived at the bottom of a well.zGh红软基地

...zGh红软基地

’ Tag对象 >>>#Attrs

The Dormouse's storyzGh红软基地

>>>bsObj.p.attrs {‘class’: ‘title’, ‘name’: ‘dromouse’} >>>bsObj.p. attrs [‘class’] ‘title’ >>>bsObi.p.attrs.get(‘class’) 'title’ NavigableString对象 >>>#获取标签内部的文字 >>>bsObj.p.string The Dormouse's story find /find_all find_all(name , attrs)  得到的所有符合条件的结果,返回的是列表格式 >>>bsObj.findall(‘a’) [LacieTillie] >>>bsObj.findall(‘a’, {‘href’: ‘http://example.com/elsie’}) [‘’] find(name , attrs)  只返回第一个符合条件的结果,所以soup.find()后面可以直接接.text或者get_text()来获得标签中的文本。 >>>bsObj.findall(‘a’) re库-正则表达式 html = ‘
我叫邓旭东 今年 27岁
’ BeautifulSoup获取html文件中的邓旭东和27,需要这样 >>>bsObj=BeautifulSoup(html, ’html.parser’) >>>Contents = bsObj.findall(‘span’) >>>Contents[0] 我叫邓旭东 >>>Contents[0].string 我叫邓旭东 >>>Contents[0].string[2:] 邓旭东 re库-正则表达式在爬虫的应用 html = ‘
我叫邓旭东 今年 27岁
’ >>>Import re >>>pattern = re.compile(r’ 我叫(.*?) 今年 (.*?)岁 ’) >>>result = re.findall(pattern, html) >>>result (‘邓旭东’,’27’) re 正则表达式常用匹配规则 . 匹配任意字符(“\n”除外) a.c abc \d 数字0-9 a\dc a1c * 匹配前一个字符的0或无限次 ab* c ac或abc 或abbc + 匹配前一个字符的1或无限次 ab+ c abc 或abbc ? 匹配前一个字符0或1次 abc? ab或abc re库方法 pattern = re.compile(string)   #以下为匹配所用函数 re.findall(pattern, string) 返回列表 re.match(pattern, string) 从string的开头匹配,匹配成功立即返回pattern的内容, 不再匹配string剩余部分 re.search(pattern, string) 从string全部匹配,如果匹配不成功返回none, 匹配成功返回一个或多个匹配内容 re.split(pattern, string) re.sub(pattern, repl, string) 目录 一、引言 for语句 用来循环,重复爬虫动作 1、遍历网址,依次对网址发送请求 2、解析网页时,返回的是列表或生成器的对象, 通过for遍历对象中的元素并对每个元素进行操作 if条件判断语句 用来解决爬虫过程中哪些要,哪些不要的问题 哪些执行,哪些不执行的问题 try。。。Except异常处理。 情景: 你设计的程序在完美情况下当然不会出错, 但现实是经常有意外出现,一遇到问题就程序就退出运行。 解决办法: try except异常处理, 增强你爬虫的健壮性, 解决遇到问题程序停止 数据存储 初级的爬虫,大多都是为了获得文本数据, 只需要用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’)) … >>>writer.writerow((colum1,colum2,colum3)) … >>>csvFile.close() 数据存储 >>>f = open(‘/apple/usr/python/data.txt’,’a+’, encoding=‘utf-8’) >>>f.write(‘sssss’) … >>>f.close 也可以使用: >>>with open((‘/apple/usr/python/data.txt’,’a+’, encoding=‘utf-8’) as f: >>> f.write(‘sssss’) 开始采集数据 目录 一、引言 如何应对反爬 伪装成浏览器 控制访问频率 使用代理IP 目录 一、引言 什么是动态网页 selenium+Firefox(36版) Selenium基本知识 from selenium import webdriver from bs4 import BeautifulSoup 初始化浏览器 driver = webdriver.Firefox() 打开某个网址 driver.get(url) Selenium基本知识 如果网站需要输入登录账号密码 这里用到firepath找到目标位置的xpath 找到输入账号框,清除框内信息,再输入你的账号 driver.find_element_by_xpath(xpath).clear() driver.find_element_by_xpath(xpath).send_keys("你的账号") 找到输入密码框,清除框内信息,再输入你的密码 driver.find_element_by_xpath(xpath).clear() driver.find_element_by_xpath(xpath).send_keys("你的密码") Selenium基本知识 定位“点击登录”框的位置的xpath,执行登录 driver.find_element_by_xpath(xpath).click() 访问你想爬的网页的网址 driver.get(url) Selenium基本知识 获取该网页的源码 html = driver.page_source BeautifulSoup定位标签 bsObj = BeautifulSoup(html,‘html.parser’) 再之后如何操作很简单,我就不写了啊,视频里有 动态网页 动态网页的特点是: 1、浏览器上面你看到的数据,找不到与之对应的html标签。 或者即使找到与之对应的标签,标签内部也没有数据 2、网址规律很难发现 爬动态网页的难点: 难以构建网址 抓包应对动态网页 动态网页 动态网页 动态网页 动态网页 动态网页 数据科学之路 Thanks! zGh红软基地

展开

同类推荐

热门PPT

相关PPT