python爬虫-使用cookie登录

什么是cookie?Cookie,指某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密)。比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的。那么我们可以利用Urllib库保存我们登录的Cookie,然后再抓取其他页面,这样就达到了我们的目的。Urllib是python内置的HTTP请求库,官方地址:https://docs.python.org/3/library/urllib.html包括以下模块:>>>urllib.request请求模块>>>urllib.error异常处理模块>>>urllib.parseurl解析模块>>>urllib.robotparserrobots.txt解析模块 uurlopen一般常用的有三个参数,它的参数如下:urllib.requeset.urlopen(url,data,timeout)简单的例子:1、url参数的使用(请求的URL)response=urllib.request.urlo...

Python爬虫实现统计博客园博文数量、阅读量、评论数

 如何使用只需要将代码中的headurl替换以下格式,其中你只需要改变以下链接的阴影部分,阴影部分为你的博客园链接。类似:https://www.cnblogs.com/-wenli/default.html?page=  原理使用requests爬取网页,再使用BeautifulSoup解析网页,获取数据、对数据做了预处理,最后使用正则匹配,匹配出需要的数据。最后的数据使用一个大字典存储。爬取网页爬取网页这里做了异常处理。defget_one_page(url,headers):try:response=requests.get(url,headers=headers)ifresponse.status_code==200:returnresponse.textexceptRequestException:returnNone解析网页defparse_one_page(html):globalitem,flagsoup=BeautifulSoup(html,'lxml')divs=soup.find_all('div',class_='day')if(l...

Python爬虫利器二之Beautiful Soup的用法

上一节我们介绍了正则表达式,它的内容其实还是蛮多的,如果一个正则匹配稍有差池,那可能程序就处在永久的循环之中,而且有的小伙伴们也对写正则表达式的写法用得不熟练,没关系,我们还有一个更强大的工具,叫BeautifulSoup,有了它我们可以很方便地提取出HTML或XML标签中的内容,实在是方便,这一节就让我们一起来感受一下BeautifulSoup的强大吧。简单来说,BeautifulSoup是python的一个库,最主要的功能是从网页抓取数据。官方解释如下:/BeautifulSoup提供一些简单的、python式的函数用来处理导航、搜索、修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要抓取的数据,因为简单,所以不需要多少代码就可以写出一个完整的应用程序。BeautifulSoup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。你不需要考虑编码方式,除非文档没有指定一个编码方式,这时,BeautifulSoup就不能自动识别编码方式了。然后,你仅仅需要说明一下原始编码方式就可以了。BeautifulSoup已成为和lxml、html6lib一样出色的p...

python爬虫之小说爬取

废话不多说,直接进入正题。今天我要爬取的网站是起点中文网,内容是一部小说。首先是引入库fromurllib.requestimporturlopenfrombs4importBeautifulSoup然后将网址赋值html=urlopen("http://read.qidian.com/chapter/dVQvL2RfE4I1/hJBflakKUDMex0RJOkJclQ2.html")//小说的第一章的网址bsObj=BeautifulSoup(html)//创建beautifulsoup对象首先尝试爬取该页的小说内容firstChapter=bsObj.find("div",{"class","read-content"})//find方法是beautifulsoup对象拥有的函数,print(firstChapter.read_text())find方法也可以和正则表达式搭配使用,并且多用于图片,视频等资源的爬取 由于本次爬取内容全在一个class属性值为read-content的盒子中,所以采用了find方法,如果该网页中,文字被放在多个盒子里,则应采用findAll...
代码星球 代码星球·2021-02-09

python爬虫 urllib模块url编码处理

案例:爬取使用搜狗根据指定词条搜索到的页面数据(例如爬取词条为‘周杰伦'的页面数据)importurllib.request#1.指定urlurl='https://www.sogou.com/web?query=周杰伦''''2.发起请求:使用urlopen函数对指定的url发起请求,该函数返回一个响应对象,urlopen代表打开url'''response=urllib.request.urlopen(url=url)#3.获取响应对象中的页面数据:read函数可以获取响应对象中存储的页面数据(byte类型的数据值)page_text=response.read()#4.持久化存储:将爬取的页面数据写入文件进行保存withopen("sougou.html","wb")asf:f.write(page_text)print("写入数据成功")f.close()编码错误【注意】上述代码中url存在非ascii编码的数据,则该url无效。如果对其发起请求,则会报如下错误:UnicodeEncodeError:'ascii'codeccan'tencodecharactersinposi...

python爬虫sslv3 alert handshake failure错误?

python开头加:importrequests.packages.urllib3.util.ssl_requests.packages.urllib3.util.ssl_.DEFAULT_CIPHERS='ALL'...

python爬虫:爬取网站视频

python爬取百思不得姐网站视频:http://www.budejie.com/video/新建一个py文件,代码如下:1234567891011121314151617181920212223242526272829303132333435#!/usr/bin/python# -*- coding: UTF-8 -*- import urllib,re,requestsimport sysreload(sys)sys.setdefaultencoding('utf-8') url_name = [] #url name def get():    #获取源码    hd = {"User-Agent":"Mozilla/5.0 (Windows NT 6.3; Win64; x64) A...

Python爬虫笔记

本次学习的教学视频来自嵩天老师的网络爬虫教学,主要学习内容有requestsBeautifulSoupscrapye,目前除了scrapy其他刚好看完。并搬运实现了一些小项目如58同城租房信息爬取、淘宝搜索商品项目,现将从爬虫基本方法、实战和遇到的问题三个方面进行总结。  1.基本方法  首先就是requests库,是python最简易实用的HTTP库,是一个请求库。主要方法如下,其中requests.request()方法最常用,用于构造请求,是其他几种方法的总和。其余方法如get()获取HTML网页,head()获取网页head标签,post()pu()t用于提交对应请求,patch()进行局部修改,delete()提交删除请求。     着重介绍request.get()方法,requests.get(url,params=None,**kwargs)  其中url为页面链接,params为额外参数,字典格式,**kwargs包含了12个控制访问的参数。(paramsdatajsonheaderscookiesauthfilesimeoutproxiesallow_re...
代码星球 代码星球·2020-10-02

Python爬虫利器一之Requests库的用法

以下内容大多来自于官方文档,本文进行了一些修改和总结。要了解更多可以参考官方文档利用pip安装  1$pipinstallrequests或者利用easy_install  1$easy_installrequests通过以上两种方法均可以完成安装。首先我们引入一个小例子来感受一下     Python 12345678importrequests r=requests.get('http://cuiqingcai.com')printtype(r)printr.status_codeprintr.encoding#printr.textprintr.cookies以上代码我们请求了本站点的网址,然后打印出了返回结果的类型,状态码,编码方式,Cookies等内容。运行结果如下  1234<class'requests.models.Response'>200UTF-8<RequestsCookieJar[]>怎样,是不是很方便。别急,...

Python爬虫小白入门(十四)Python 爬虫 – 提取数据到Pandas DataFrame

Pandas是一个开放源码、BSD许可的库,为Python编程语言提供高性能、易于使用的数据结构和数据分析工具。把抓取到的数据存储到PandasDataFrame中,可以进一步对数据进行分析,是一种常见做法。本章例子,将从豆瓣网站上抓取北美电影排行榜,并放进DataFrame中。豆瓣网站上的北美电影排行榜网址,北美电影排行榜在右下边栏。importrequestsfrombs4importBeautifulSouppage=requests.get("https://movie.douban.com/chart")soup=BeautifulSoup(page.content,'html.parser')titles_tags=soup.select("ul#listCont1>lia")titles=[(pt.get_text()).strip()forptintitles_tags]print(titles)revenue_tags=soup.select("ul#listCont1>lispan")revenues=[(pt.get_text()).strip()fo...

Python爬虫小白入门(十三)Python 爬虫 – 使用CSS选择器

BeautifulSoup对象支持使用CSS选择器查找标签。这些选择器是CSS语言中使用的指定HTMLTag样式的方式。下面是一些例子:pa —在p标记中找到所有的a标签。bodypa —在body标记内的p标记内查找所有a标签。htmlbody —查找html标记内的body标签。p.outer-text —查找带有类是outer-text所有p标记。p#first —查找id为first的所有p标签。bodyp.outer-text —在body标记中查找类是outer-text的p标签。使用CSS选择器查找标签,可以使用select方法:importrequestsfrombs4importBeautifulSouppage=requests.get("https://kevinhwu.github.io/demo/python-scraping/simple2.html")soup=BeautifulSoup(page.content,'html....

Python爬虫小白入门(十二)Python 爬虫 – 根据id与class查找标签

本章介绍怎么根据id与class查找标签。假设有下面的HTML文档:<html><head><title>Asimpleexamplepage</title></head><body><div><pclass="inner-textfirst-item"id="first">Firstparagraph.</p><pclass="inner-text">Secondparagraph.</p></div><pclass="outer-textfirst-item"id="second"><b>Firstouterparagraph.</b></p><pclass="outer-text"><b>Secondouterparagraph.</b></p></body></html>可以通过URLhttps://kevinhwu....

Python爬虫小白入门(十一)Python 爬虫 – 根据类型查找标签

如要查找全部同类标签,可以使用find_all方法。importrequestsfrombs4importBeautifulSouppage=requests.get("https://kevinhwu.github.io/demo/python-scraping/simple.html")soup=BeautifulSoup(page.content,'html.parser')soup.find_all('p')输出[<p>Hereissomesimplecontentforthispage.</p>]find_all返回的是一个列表。可以使用列表索引获取某个标签:soup.find_all('p')[0].get_text()输出'Hereissomesimplecontentforthispage.'另外,还有find方法,返回同类标签的首个实例,返回结果是一个BeautifulSoup对象:soup.find('p')输出<p>Hereissomesimplecontentforthispage.</p> ...

Python爬虫小白入门(十)Python 爬虫 – BeautifulSoup分析页面

我们已经抓取了一个HTML页面,接下来,我们使用BeautifulSoup来分析页面。importrequestsfrombs4importBeautifulSouppage=requests.get("https://kevinhwu.github.io/demo/python-scraping/simple.html")soup=BeautifulSoup(page.content,'html.parser')导入BeautifulSoup库,创建页面解析对象soup。前面打印出的html页面格式很乱,如果想打印出美化格式的html页面,可以使用BeautifulSoup对象上的prettify方法:print(soup.prettify())输出<!DOCTYPEhtml><html><head><title>Asimpleexamplepage</title></head><body><p>Hereissomesimplecontentforthispage.</p>&l...

Python爬虫小白入门(九)Python 爬虫 – 使用requests抓取网页

Python中,requests库可用于向web服务器发出http请求,http请求有多种方式,例如,GET/POST/PUT/DELETE等等。这里将使用GET请求抓取页面:importrequestspage=requests.get("https://kevinhwu.github.io/demo/python-scraping/simple.html")page输出<Response[200]>发出请求之后,会返回一个响应对象。该对象包含一个status_code属性,表示页面访问是否成功:page.status_code输出200status_code为200,表示成功。关于http状态码,以2开头的状态代码通常表示成功,以4或5开头的代码表示错误,如需进一步了解,可参考相关资料。可以使用content属性,打印出页面的HTML内容:page.content输出b'<!DOCTYPEhtml><html><head><title>Asimpleexamplepage</title></head>...
首页上一页12345...下一页尾页