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

上传人:牧羊曲112 文档编号:1999376 上传时间:2022-12-30 格式:PPT 页数:69 大小:6.82MB
返回 下载 相关 举报
python爬虫入门——邓旭东ppt课件.ppt_第1页
第1页 / 共69页
python爬虫入门——邓旭东ppt课件.ppt_第2页
第2页 / 共69页
python爬虫入门——邓旭东ppt课件.ppt_第3页
第3页 / 共69页
python爬虫入门——邓旭东ppt课件.ppt_第4页
第4页 / 共69页
python爬虫入门——邓旭东ppt课件.ppt_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《python爬虫入门——邓旭东ppt课件.ppt》由会员分享,可在线阅读,更多相关《python爬虫入门——邓旭东ppt课件.ppt(69页珍藏版)》请在三一办公上搜索。

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

2、储,控制访问频率 伪装装成浏览器 使用代理IP,selenium+Firefox(36版) 抓包应对动态网页,引言 爬虫能做什么?,微博最近有啥热门话题淘宝京东上某商品价格变动邮箱通知女/男神最新动态谁点赞最活跃BBS抢沙发社交网络分析.,引言 爬虫能做什么,一句话,只要浏览器有的,你都可以抓可以爬,引言 爬虫好学吗?,from math import powYouJoinUs = is:TrueIf YouJoinUsis: result = pow(1.01,365) print(result)37.7834,简单的道理,目录,一、引言,三、网页请求,四、网页解析,五、开始采集,六、如何应

3、对反爬,七、高级爬虫,爬虫工作原理HTMLPython基本知识,找规律构建urlrequests库,如何解析网页BeautifulSoup re库的使用,条件、循环语句 try。Except异常处理。 数据存储,控制访问频率 伪装装成浏览器 使用代理IP,selenium+Firefox(36版) 抓包应对动态网页,二、准备知识,爬虫工作原理,蓝色线条:发起请求 (request)红色线条:返回响应(response),HTML标签,访问Python中文社区https:/,浏览器显示效果,Python基本知识,基本数据类型(str,list,tuple,set,dict)循环语句 (for循环

4、)条件语句 (if else while)表达式 (如age = 20),字符串str,字符串:单(双、三)引号及其夹住的字符String = 我叫邓旭东String2:5 邓旭东,列表list,1, 2, 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),集合set,a, b, c集合是不重复的元素组成的一个基本数据类型。,字典dict,Dict = name: 邓旭

5、东, age: 26, gender: male在大括号中,数据成对存储,冒号左边是键(key),冒号右边是值(value)Dictage26,for循环,for x in 1, 2, 3: print(x)123,目录,一、引言,三、网页请求,四、网页解析,五、开始采集,六、如何应对反爬,七、高级爬虫,爬虫工作原理HTMLPython基本知识,找规律构建urlrequests库,如何解析网页BeautifulSoup re库的使用,条件、循环语句 try。Except异常处理。 数据存储,控制访问频率 伪装装成浏览器 使用代理IP,selenium+Firefox(36版) 抓包应对动态网页

6、,二、准备知识,找规律构建url,通过点击翻看同一个目录下的多个页面,发现规律,定制url,发现规律定制url,发现规律定制url,这里的url规律是页码数减1后乘以20,构建网址,Base_url = https:/ page in range(1,94,1): Num = page - 1 url = Base_url.format(num=Num*20) print(url)https:/,requests库,Requests is an elegant and simple HTTP library for Python, built for human beings.Requests

7、是一个优雅简洁的Python HTTP库,给人类使用。,requests常用方法,最普通的访问url = http:/ = 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.36r = requests.get(url,headers = Headers),requests常用方法,使用cookie访问Cookie

8、= Cookie: UM_distinctid=15ab64ecfd6592-0afad5b368bd69-1d3b6853-13c680-15ab64ecfd7b6; remember_user_token=W1sxMjEzMTM3XSwiJDJhJDEwJHhjYklYOGl2eTQ0Yi54WC5seVh2UWUiLCIxNDg5ODI2OTgwLjg4ODQyODciXQ%3D%3D-ac835770a030c0595b2993289e39c37d82ea27e2; CNZZDATA1258679142=559069578-1488626597-https%253A%252F%252F

9、%252F%7C1489923851r = requests.get(url, cookies=cookies),requests常用方法, r.text u“repository”:“open_issues”:0,“url”:“https:/ #(4开头客户端问题,5开头服务器问题)200,目录,一、引言,三、网页请求,四、网页解析,五、开始采集,六、如何应对反爬,七、高级爬虫,爬虫工作原理HTMLPython基本知识,找规律构建urlrequests库,如何解析网页BeautifulSoup re库的使用,条件、循环语句 try。Except异常处理。 数据存储,控制访问频率 伪装装成浏览

10、器 使用代理IP,selenium+Firefox(36版) 抓包应对动态网页,二、准备知识,如何解析网页,火狐Firebug/谷歌的开发者工具BeaufifulSoup/re库,Python基本知识,BeautifulSoup,bsObj = BeautifulSoup(html, “html.parser”)格式化输出bsObj对象的内容,两种主要的对象: Tag、NavigableString,tag对象,bsObj.titleThe Dormouses storybsObj.headThe Dormouses storybsObj.a,注意:它查找的是在所有内容中的第一个符合要求的标签

11、,如果要查询所有的标签,这种方法不奏效,BeautifulSoup 遍历文档树,#直接子节点 .contentsbsObj.head.contents #输出的为列表The Dormouses storybsObj.head.contents0 从列表中取出子节点The Dormouses story,BeautifulSoup 遍历文档树,#直接子节点 .childrenbsObj.head.children #返回生成器,可以迭代取出来 for child in soup.body.children: print child The Dormouses storyOnce upon a t

12、ime 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)title,NavigableString对象,#获取标签内部的文字bsObj.p.stringThe Dormouses sto

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

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

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

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

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

18、 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.tx

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

20、、开始采集,六、如何应对反爬,七、高级爬虫,爬虫工作原理HTMLPython基本知识,找规律构建urlrequests库,如何解析网页BeautifulSoup re库的使用,条件、循环语句 try。Except异常处理 数据存储,控制访问频率 伪装装成浏览器 使用代理IP,selenium+Firefox(36版) 抓包应对动态网页,二、准备知识,什么是动态网页,selenium+Firefox(36版),Win/mac 火狐资源链接https:/,Selenuim默认支持firefox浏览器,不需要再安装浏览器驱动。selenium对火狐浏览器新版本支持不好,经常无法自动化操作。经测试36

21、版本,完美运行。,Selenium基本知识,from selenium import webdriverfrom 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(你

22、的账号)找到输入密码框,清除框内信息,再输入你的密码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_sourceBeautifulSoup定位标签bsObj = BeautifulSoup(html,html.parser)再之后如何操作很简单,我就不写了啊,视频里有,动态网页,动态网页的特点是:1、浏览器上面你看到的数据,找不到与之对应的html标签。 或者即使找到与之对应的标签,标签内部也没有数据2、网址规律很难发现爬动态网页的难点:难以构建网址,抓包应对动态网页,动态网页,动态网页,动态网页,动态网页,动态网页,数据科学之路,Thanks!,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号