python爬虫

python爬虫---requests库的用法

那年仲夏 提交于 2020-02-01 07:20:19
本文转载自: https://www.cnblogs.com/mzc1997/p/7813801.html 作者:mzc1997 转载请注明该声明。 requests是 python 实现的简单易用的HTTP库,使用起来比urllib简洁很多 因为是第三方库,所以使用前需要cmd安装 pip install requests 安装完成后import一下,正常则说明可以开始使用了。 基本用法: requests.get()用于请求目标网站,类型是一个HTTPresponse类型 import requests response = requests.get( ' http://www.baidu.com ' ) print(response.status_code) # 打印状态码 print(response.url) # 打印请求url print(response.headers) # 打印头信息 print(response.cookies) # 打印cookie信息 print (response.text) #以文本形式打印网页源码 print(response.content) #以字节流形式打印 运行结果: 状态码:200 url:www.baidu.com headers信息 各种请求方式: import requests requests.get( ' http:

python爬虫2

*爱你&永不变心* 提交于 2020-02-01 04:08:11
学习任务 获取去哪儿网的出发地列表 获取旅游景点列表 获取景点产品列表 存储数据 1 获取出发地站点 (1)访问touch.qunar.com (2)按F12,单击自由行,在自由行页面点击搜索框 (3)单击任意一个城市,切换到headers,查看request URL如下所示。但是需要工具还原编码咋们才能知道这是啥(dep参数表示出发地,query表示目的地)。推荐网站 http://www.jsons.cn/urlencode/ ,解码效果下面图2 3 实现 (1)首先获得出发地站点,因为最终需要获得整个自由行的产品列表。 自由行首页中点击左侧的出发点站点,然后获取目标URL如图二 1 import requests 2 url="https://touch.dujia.qunar.com/depCities.qunar" 3 4 5 strhtml=requests.get(url) 6 print(strhtml) 7 dep_dict=strhtml.json() 8 print(dep_dict) 9 for dep_item in dep_dict['data']: 10 for dep in dep_dict['data'][dep_item]: 11 print(dep) View Code (2)获得目的地。根据上面的分析,json工具解码以后通过拼接可得URL。

go爬虫框架-colly实战(一)

大城市里の小女人 提交于 2020-02-01 02:44:01
原文连接: Hzy 博客 1.吐槽 这几天准备用go写爬虫来着,之前一直都是用python,python写协程,我这菜鸡也得又蛋疼,刚好又学了go,就想体验一把用go写爬虫的快感来着。 之前github上照着别人的思路,写了一个简单的并发爬虫框架,对go的并发,倒是学到了一点点,无意间发现了colly,对比下别人的,在看自己写的,唉… 2.colly简单介绍使用 github: https://github.com/gocolly/colly 官网: http://go-colly.org/ 2.1 colly介绍 colly是一个爬虫框架,通过他,我们能快的实现一个并发爬虫,同简单易懂,方便扩展。 colly主要的东西就是Collector,通过Collector来收集访问的数据,并进行存储。(面向过程) 2.1 colly一个页面的抓取时的过程中的回调 收集器请求前: onRequest() 收集器抓取失败:onError() 收集器响应后:onResponse() 收集器收到HTML:onHTML() 收集器收到XML: onXML() 收集器抓取完后最后执行的回调:onScraped() 通过浙这些回调,我们就能很快写出一个爬虫,同时官网上也会有很多例子,供我们参考学习,实在不行看看源码。 2.2 colly中Collector的配置 具体配置信息可以在官网中查看到

python爬虫

拟墨画扇 提交于 2020-02-01 01:24:32
一:爬虫类型   定向:指定网站爬取   非定向:仍意网站爬取 二:简单流程   下载网页     requests模块   筛选特定标签     beautfulsoup/正则表达式 三:BeautifulSoup模块介绍 1.name属性,标签名称 soup=BeautifulSoup(html_doc,features='lxml') # t1=soup.find(id='xml') # print(t1.name) # t1.name='div'#修改标签 # print(soup) 2.attr属性,获取标签的所有标签属性,类型字典 # t2=soup.find(name='p') # print(t2.attrs)#查看该标签的所有属性 # print(t2.attrs.get('id')) # t2.attrs={'name':'first','id':'irving'}#修改该标签的属性 # print(soup) # t2.attrs['id']='curry' # print(soup) 3.children,所有子标签 #children属性,获取所有的孩子标签 # from bs4.element import Tag # t3=soup.find('div') # print(list(t3.children)) # for item in t3: #

Python爬虫入门这一篇就够了

一个人想着一个人 提交于 2020-02-01 01:16:01
何谓爬虫 所谓爬虫,就是按照一定的规则,自动的从网络中抓取信息的程序或者脚本。万维网就像一个巨大的蜘蛛网,我们的爬虫就是上面的一个蜘蛛,不断的去抓取我们需要的信息。 爬虫三要素 抓取 分析 存储 基础的抓取操作 1、urllib 在Python2.x中我们可以通过urllib 或者urllib2 进行网页抓取,但是再Python3.x 移除了urllib2。只能通过urllib进行操作 带参数的urllib url = 'https://blog.csdn.net/weixin_43499626' url = url + '?' + key + '=' + value1 + '&' + key2 + '=' + value2 2、requests requests库是一个非常实用的HTPP客户端库,是抓取操作最常用的一个库。Requests库满足很多需求 需要登录的情况下 1、表单提交登录 向服务器发送一个post请求并携带相关参数,将服务器返回的cookie保存在本地,cookie是服务器在客户端上的“监视器”,记录了登录信息等。客户端通过识别请求携带的cookie,确定是否登录 2、cookie登录 我们可以将登录的cookie存储在文件中, 常见的反爬有哪些 1、通过user-agent来控制访问 user-agent能够使服务器识别出用户的操作系统及版本、cpu类型

Python——爬虫

送分小仙女□ 提交于 2020-02-01 00:14:58
参考资料 网络爬虫 (又被称为 网页蜘蛛,网络机器人 ,在FOAF社区中间,更经常的称为 网页追逐者 ),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。 其实通俗的讲就是通过程序去获取web页面上自己想要的数据,也就是自动抓取数据 爬虫的本质 :模拟浏览器打开网页,获取网页中我们想要的那部分数据 浏览器打开网页的过程: 当你在浏览器中输入地址后,经过DNS服务器找到服务器主机,向服务器发送一个请求,服务器经过解析后发送给用户浏览器结果,包括html,js,css等文件内容,浏览器解析出来最后呈现给用户在浏览器上看到的结果 用户看到的浏览器的结果就是由HTML代码构成的,我们爬虫就是为了获取这些内容,通过分析和过滤html代码,从中获取我们想要资源(文本,图片,视频.....) 爬虫就是请求网站并提取数据的自动化程序。其中 请求 , 提取 , 自动化 是爬虫的关键! 爬虫的基本流程 发起请求 通过HTTP库向目标站点发起请求,也就是发送一个 Request ,请求可以包含额外的 header 等信息,等待服务器响应 Response 获取响应内容 如果服务器能正常响应,会得到一个Response,Response的内容便是所要获取的页面内容,类型可能是HTML,Json字符串,二进制数据(图片或者视频)等类型

拾玖-Python 异步 爬虫 MongoDB 等事宜实施

情到浓时终转凉″ 提交于 2020-01-31 16:42:18
1. 综述 根据前期的 NodeJS 代理池 开展的 爬虫 终于有所进展,技术实现已初步实现,相关引用 资料 如下所示: 爬虫 http://c.biancheng.net/view/2011.html 链接MongoDB https://blog.51cto.com/1767340368/2092960 超时 https://www.cnblogs.com/gl1573/p/10129382.html 异步处理 https://blog.csdn.net/tinyzhao/article/details/52684473 //这不懂,做不了异步 https://github.com/Blackyukun/IPProxyPool //这是有些代码 https://segmentfault.com/a/1190000008814676?utm_source=tag-newest //这可以了 https://www.cnblogs.com/shenh/p/9090586.html //最大并发数 https://docs.aiohttp.org/en/stable/client_advanced.html //没啥事还是得去看官方文档 2.代码及注释 ''' @Descripttion: 爬虫测试页面 @Author: BerryBC @Date: 2020-01-30 15:00

1. 爬虫初体验

限于喜欢 提交于 2020-01-31 04:19:43
1. 爬虫初体验 步骤 体验爬虫 requests.get() Response对象的常用属性 爬虫伦理 步骤 第0步:获取数据。爬虫程序会根据我们提供的网址,向服务器发起请求,然后返回数据。 第1步:解析数据。爬虫程序会把服务器返回的数据解析成我们能读懂的格式。 第2步:提取数据。爬虫程序再从中提取出我们需要的数据。 第3步:储存数据。爬虫程序把这些有用的数据保存起来,便于你日后的使用和分析。 这就是爬虫的工作原理啦,无论之后的学习内容怎样变化,其核心都是爬虫原理。 下面,我们快速浏览一下整个关卡的学习大纲。大纲展示了我们将如何逐步学习和掌握爬虫这项技能,了解即可。 体验爬虫 这一部分的任务就是学会爬虫的第0步:获取数据。 我们将会利用一个强大的库——requests来获取数据。 在学习系统里,已经帮你预装好requests库。如果你希望在电脑上安装,方法是:在Mac电脑里打开终端软件(terminal),输入pip3 install requests,然后点击enter即可;Windows电脑里叫命令提示符(cmd),输入pip install requests 即可。 requests库可以帮我们下载网页源代码、文本、图片,甚至是音频。其实,“下载”本质上是向服务器发送请求并得到响应。 先来看requests.get()方法。 requests.get() requests

python-爬虫-庆余年小说-词云胡乱分析

孤人 提交于 2020-01-31 02:45:42
进入正题,首先要搞到资源,我先去了搜索了一番,找到个网站“落霞”。一言不合就按下了F12,翻了下网页源码,超级简单。 from bs4 import BeautifulSoup from requests import Session from re import sub , DOTALL sess = Session ( ) txt = [ ] url = 'https://www.luoxia.com/qing/48416.htm' def find ( url ) : res = sess . get ( url ) soup = BeautifulSoup ( res . content , 'html.parser' ) title = soup . find ( 'title' ) div = soup . find ( 'div' , id = 'nr1' ) ps = div . find_all ( 'p' ) page = title . text + '\n' print ( page ) for p in ps : page += p . text + '\n' txt . append ( page ) try : a = soup . find ( 'a' , rel = 'next' ) href = a [ 'href' ] except :

Python爬虫学习(二)使用Beautiful Soup库

泪湿孤枕 提交于 2020-01-31 01:41:07
(一)使用Beautiful Soup库   1,安装Beautiful Soup库:pip install beautifulsoup4   2,简单使用: import requests; from _socket import timeout from bs4 import BeautifulSoup #使用Beautiful Soup库需要导包 #from aifc import data def getHTMLText(url): try: r=requests.get(url,timeout=30) r.raise_for_status() #如果连接状态不是200,则引发HTTPError异常 r.encoding=r.apparent_encoding #使返回的编码正常 print("连接成功") return r.status_code except: print("连接异常") return r.status_code url="https://python123.io/ws/demo.html" #keywords={"ip":"202.204.80.112"} access={"user-agent":"Mozilla/5.0"} #设置访问网站为浏览器Mozilla5.0 if getHTMLText(url)==200: r=requests.get