python爬虫入门——邓旭东.ppt

上传人:豆**** 文档编号:33492023 上传时间:2022-08-11 格式:PPT 页数:70 大小:6.90MB
返回 下载 相关 举报
python爬虫入门——邓旭东.ppt_第1页
第1页 / 共70页
python爬虫入门——邓旭东.ppt_第2页
第2页 / 共70页
点击查看更多>>
资源描述

《python爬虫入门——邓旭东.ppt》由会员分享,可在线阅读,更多相关《python爬虫入门——邓旭东.ppt(70页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、自我介绍2009-2013 哈尔滨工业大学经济管理学院2015-至今 中南大学商学院 主要研究方向为线上社群及消费者行为, 在学习研究过程中,习得了数据科学相关技术, 如数据采集、数据清理、数据规整、统计分析熟悉R、python、MongoDB。目录二、准备知识一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理 HTML+CSS Python基本知识 找规律构建url requests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理。 数据存储 控制访问频率 伪装装成浏览器 使用代理IP seleniu

2、m+Firefox(36版) 抓包应对动态网页 引言 爬虫能做什么?微博最近有啥热门话题淘宝京东上某商品价格变动邮箱通知女/男神最新动态谁点赞最活跃BBS抢沙发社交网络分析. 引言 爬虫能做什么一句话,只要浏览器有的,你都可以抓可以爬引言 爬虫好学吗?from math import powYouJoinUs = is:TrueIf YouJoinUsis: result = pow(1.01,365) print(result)37.7834简单的道理目录 一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫爬虫工作原理HTMLPython基本知识 找规律构建url re

3、quests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理。 数据存储 控制访问频率 伪装装成浏览器 使用代理IP selenium+Firefox(36版) 抓包应对动态网页 二、准备知识爬虫工作原理 蓝色线条:发起请求 (request) 红色线条:返回响应(response)HTML标签访问Python中文社区https:/ (for循环)条件语句 (if else while)表达式 (如age = 20)字符串str字符串:单(双、三)引号及其夹住的字符String = 我叫邓旭东String2:5 邓旭东列表list1, 2

4、, 3, 4, 51, 2, 3, 4, 5a, 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)集合seta, b, c集合是不重复的元素组成的一个基本数据类型。字典dictDict = name: 邓旭东, age: 26, gender: male在大括号中,数据成对存储,冒号左边是键(key),冒号右边是值(value)Dictage26for循环for x in 1, 2, 3: print(x)123目录

5、一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理 HTML Python基本知识找规律构建urlrequests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理。 数据存储 控制访问频率 伪装装成浏览器 使用代理IP selenium+Firefox(36版) 抓包应对动态网页 二、准备知识找规律构建url通过点击翻看同一个目录下的多个页面,发现规律,定制url发现规律定制url发现规律定制url这里的url规律是页码数减1后乘以20构建网址Base_url = https:/ page in ran

6、ge(1,94,1): Num = page - 1 url = Base_url.format(num=Num*20) print(url)https:/ is an elegant and simple HTTP library for Python, built for human beings.Requests是一个优雅简洁的Python HTTP库,给人类使用。requests常用方法最普通的访问url = http:/ = requests.get(url)伪装成浏览器的访问Headers = User-Agent: Mozilla/5.0 (Macintosh; Intel Ma

7、c OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36r = requests.get(url,headers = Headers)requests常用方法使用cookie访问Cookie = Cookie: UM_distinctid=15ab64ecfd6592-0afad5b368bd69-1d3b6853-13c680-15ab64ecfd7b6; remember_user_token=W1sxMjEzMTM3XSwiJDJhJDEwJHhjYklYOGl2eTQ

8、0Yi54WC5seVh2UWUiLCIxNDg5ODI2OTgwLjg4ODQyODciXQ%3D%3D-ac835770a030c0595b2993289e39c37d82ea27e2; CNZZDATA1258679142=559069578-1488626597-https%253A%252F%252F%252F%7C1489923851r = requests.get(url, cookies=cookies)requests常用方法 r.text u“repository”:“open_issues”:0,“url”:“https:/ #(4开头客户端问题,5开头服务器问题)200

9、 目录 一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理 HTML Python基本知识 找规律构建url requests库如何解析网页BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理。 数据存储 控制访问频率 伪装装成浏览器 使用代理IP selenium+Firefox(36版) 抓包应对动态网页 二、准备知识如何解析网页火狐Firebug/谷歌的开发者工具BeaufifulSoup/re库Python基本知识BeautifulSoupbsObj = BeautifulSoup(html, “html.parse

10、r”)格式化输出bsObj对象的内容4567891011html = The Dormouses storyThe Dormouses storyOnce upon a time there were three little sisters; and their names were,Lacie andTillie;and they lived at the bottom of a well.两种主要的对象: Tag、NavigableStringtag对象bsObj.titleThe Dormouses storybsObj.headThe Dormouses storybsObj.a注意

11、:它查找的是在所有内容中的第一个符合要求的标签,如果要查询所有的标签,这种方法不奏效BeautifulSoup 遍历文档树#直接子节点 .contentsbsObj.head.contents #输出的为列表The Dormouses storybsObj.head.contents0 从列表中取出子节点The Dormouses storyBeautifulSoup 遍历文档树#直接子节点 .childrenbsObj.head.children #返回生成器,可以迭代取出来 for child in soup.body.children: print child The Dormouses

12、 storyOnce upon a time there were three little sisters; and their names wereLacie andTillieand they lived at the bottom of a well.Tag对象#Attrs The Dormouses storybsObj.p.attrs class: title, name: dromousebsObj.p. attrs classtitlebsObi.p.attrs.get(class)titleNavigableString对象#获取标签内部的文字bsObj.p.stringTh

13、e Dormouses storyfind /find_allfind_all(name , attrs) 得到的所有符合条件的结果,返回的是列表格式bsObj.findall(a), Lacie, TilliebsObj.findall(a, href: http:/ , attrs) 只返回第一个符合条件的结果,所以soup.find()后面可以直接接.text或者get_text()来获得标签中的文本。bsObj.findall(a)re库-正则表达式html = 我叫邓旭东 今年 27岁 BeautifulSoup获取html文件中的邓旭东和27,需要这样bsObj=Beautiful

14、Soup(html, html.parser) Contents = bsObj.findall(span)Contents0我叫邓旭东 Contents0.string我叫邓旭东Contents0.string2:邓旭东Contents1今年27岁Contents1.string今年27岁Contents1.string2:-227re库-正则表达式在爬虫的应用html = 我叫邓旭东 今年 27岁 Import repattern = pile(r 我叫(.*?) 今年 (.*?)岁 )result = re.findall(pattern, html)result(邓旭东,27)re 正

15、则表达式常用匹配规则. 匹配任意字符(“n”除外) a.c abcd 数字0-9 adc a1c * 匹配前一个字符的0或无限次 ab* c ac或abc 或abbc+ 匹配前一个字符的1或无限次 ab+ c abc 或abbc? 匹配前一个字符0或1次 abc? ab或abcre库方法pattern = pile(string)#以下为匹配所用函数re.findall(pattern, string) 返回列表re.match(pattern, string) 从string的开头匹配,匹配成功立即返回pattern的内容, 不再匹配string剩余部分re.search(pattern,

16、string) 从string全部匹配,如果匹配不成功返回none, 匹配成功返回一个或多个匹配内容re.split(pattern, string) re.sub(pattern, repl, string)目录 一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理 HTML Python基本知识 找规律构建url requests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理 数据存储 控制访问频率 伪装装成浏览器 使用代理IP selenium+Firefox(36版) 抓包应对动态网页 二、准备

17、知识for语句用来循环,重复爬虫动作1、遍历网址,依次对网址发送请求2、解析网页时,返回的是列表或生成器的对象, 通过for遍历对象中的元素并对每个元素进行操作if条件判断语句用来解决爬虫过程中哪些要,哪些不要的问题 哪些执行,哪些不执行的问题try。Except异常处理。情景:你设计的程序在完美情况下当然不会出错,但现实是经常有意外出现,一遇到问题就程序就退出运行。解决办法:try except异常处理,增强你爬虫的健壮性,解决遇到问题程序停止数据存储初级的爬虫,大多都是为了获得文本数据,只需要用csv 、txt文件存储即可import csvcsvFile = open(/apple/us

18、r/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=ut

19、f-8) as f: f.write(sssss)开始采集数据目录 一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理 HTML Python基本知识 找规律构建url requests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理 数据存储 控制访问频率 伪装装成浏览器 使用代理IP selenium+Firefox(36版) 抓包应对动态网页 二、准备知识如何应对反爬伪装成浏览器控制访问频率 使用代理IP目录 一、引言三、网页请求四、网页解析五、开始采集六、如何应对反爬七、高级爬虫 爬虫工作原理

20、HTML Python基本知识 找规律构建url requests库 如何解析网页 BeautifulSoup re库的使用 条件、循环语句 try。Except异常处理 数据存储 控制访问频率 伪装装成浏览器 使用代理IPselenium+Firefox(36版) 抓包应对动态网页 二、准备知识什么是动态网页selenium+Firefox(36版)Win/mac 火狐资源链接https:/ selenium import webdriverfrom bs4 import BeautifulSoup初始化浏览器driver = webdriver.Firefox()打开某个网址driver.

21、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

22、(xpath).send_keys(你的密码)Selenium基本知识定位“点击登录”框的位置的xpath,执行登录driver.find_element_by_xpath(xpath).click()访问你想爬的网页的网址driver.get(url)Selenium基本知识获取该网页的源码html = driver.page_sourceBeautifulSoup定位标签bsObj = BeautifulSoup(html,html.parser)再之后如何操作很简单,我就不写了啊,视频里有动态网页动态网页的特点是:动态网页的特点是:1、浏览器上面你看到的数据,找不到与之对应的html标签。 或者即使找到与之对应的标签,标签内部也没有数据2、网址规律很难发现爬动态网页的难点:爬动态网页的难点:难以构建网址抓包应对动态网页动态网页动态网页动态网页动态网页动态网页数据科学之路Thanks!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com