url

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。

【爬虫学习笔记day57】6.7. scrapy-redis的官方文档源码分析参考:Spider

梦想与她 提交于 2020-02-01 04:05:26
文章目录 6.7. scrapy-redis的官方文档源码分析参考:Spider spider.py 总结 6.7. scrapy-redis的官方文档源码分析参考:Spider spider.py 设计的这个spider从redis中读取要爬的url,然后执行爬取,若爬取过程中返回更多的url,那么继续进行直至所有的request完成。之后继续从redis中读取url,循环这个过程。 分析:在这个spider中通过connect signals.spider_idle信号实现对crawler状态的监视。当idle时,返回新的make_requests_from_url(url)给引擎,进而交给调度器调度。 from scrapy import signals from scrapy . exceptions import DontCloseSpider from scrapy . spiders import Spider , CrawlSpider from . import connection # Default batch size matches default concurrent requests setting. DEFAULT_START_URLS_BATCH_SIZE = 16 DEFAULT_START_URLS_KEY = '%(name)s:start

requests beautifulsoup

独自空忆成欢 提交于 2020-02-01 02:56:56
requests Python标准库中提供了:urllib、urllib2、httplib等模块以供Http请求,但是,它的 API 太渣了。它是为另一个时代、另一个互联网所创建的。它需要巨量的工作,甚至包括各种方法覆盖,来完成最简单的任务。 Requests 是使用 Apache2 Licensed 许可证的 基于Python开发的HTTP 库,其在Python内置模块的基础上进行了高度的封装,从而使得Pythoner进行网络请求时,变得美好了许多,使用Requests可以轻而易举的完成浏览器可有的任何操作。 1、GET请求 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 # 1、无参数实例 import requests ret = requests.get( 'https://github.com/timeline.json' ) print ret.url print ret.text # 2、有参数实例 import requests payload = { 'key1' : 'value1' , 'key2' : 'value2' } ret = requests.get( "http://httpbin.org/get" , params = payload) print ret.url print ret

GET,POST传值总结

我是研究僧i 提交于 2020-02-01 02:12:24
GET和POST是什么?HTTP协议中的两种发送请求的方法。 HTTP是什么?HTTP是基于TCP/IP的关于数据如何在万维网中如何通信的协议。 其实,GET和POST本质上两者没有任何区别。他们都是HTTP协议中的请求方法。底层实现都是基于TCP/IP协议。上述的所谓区别,只是浏览器厂家根据约定,做得限制而已。 HTTP请求,最初设定了八种方法。这八种方法本质上没有任何区别。只是让请求,更加有语义而已。 OPTIONS 返回服务器所支持的请求方法 GET 向服务器获取指定资源 HEAD 与GET一致,只不过响应体不返回,只返回响应头 POST 向服务器提交数据,数据放在请求体里 PUT 与POST相似,只是具有幂等特性,一般用于更新 DELETE 删除服务器指定资源 TRACE 回显服务器端收到的请求,测试的时候会用到这个 CONNECT 预留,暂无使用 TCP就像汽车,我们用TCP来运输数据,它很可靠,从来不会发生丢件少件的现象。但是如果路上跑的全是看起来一模一样的汽车,那这个世界看起来是一团混乱,送急件的汽车可能被前面满载货物的汽车拦堵在路上,整个交通系统一定会瘫痪。为了避免这种情况发生,交通规则HTTP诞生了。HTTP给汽车运输设定了好几个服务类别,有GET, POST, PUT, DELETE等等,HTTP规定,当执行GET请求的时候,要给汽车贴上GET的标签

HTML协议

拥有回忆 提交于 2020-02-01 01:16:18
HTTP协议 HTTP协议简介 超文本传输协议(英文: H yper T ext T ransfer P rotocol,缩写:HTTP)是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。 HTTP的发展是由蒂姆·伯纳斯-李于1989年在欧洲核子研究组织(CERN)所发起。HTTP的标准制定由万维网协会(World Wide Web Consortium,W3C)和互联网工程任务组(Internet Engineering Task Force,IETF)进行协调,最终发布了一系列的RFC,其中最著名的是1999年6月公布的 RFC 2616,定义了HTTP协议中现今广泛使用的一个版本——HTTP 1.1。 2014年12月,互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis(httpbis)工作小组将HTTP/2标准提议递交至IESG进行讨论,于2015年2月17日被批准。 HTTP/2标准于2015年5月以RFC 7540正式发表,取代HTTP 1.1成为HTTP的实现标准。 HTTP协议概述 HTTP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请求到服务器上指定端口(默认端口为80)

Python——爬虫

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

Vue+mavonEditor+spring Boot图片上传并回显

随声附和 提交于 2020-01-31 13:37:03
1.前言 最近正在使用vue和springboot开发一个项目,其中做了一个使用markdown编辑器写文章的功能。在里面会用到图片上传,刚开始图片总是显示不出来,不过通过查看各种资料,总算把它做出来了。下面我就来讲一下我是怎么做出来的。 2.思路 图片上传的大概思路如下: 前端选择图片 将图片上传到服务器 将图片保存到服务器 服务器返回给前端图片地址链接 前端回显图片 3.开发步骤 3.1安装mavon-editor npm install mavon - editor -- save 3.2引入及配置 import { mavonEditor } from 'mavon-editor' import 'mavon-editor/dist/css/index.css' 3.3使用mavonEditor < template > < div > < mavon - editor v - model = "content" ref = "md" @change = "change" @imgAdd = "imgAdd" / > < button @click = "submit" > 提交 < / button > < / div > < / template > < script > import { mavonEditor } from 'mavon-editor' import

Is a (local) file path an URI?

风流意气都作罢 提交于 2020-01-31 13:34:26
问题 On some input we allow the following paths: C:\Folder \\server\Folder http://example.com/... I wonder if I can mark them all as "URI"s? Thanks! 回答1: C:/Folder and /server/Folder/ are file paths. http://example.com/ is a URL, which is a URI sub-type, so you could mark it as a URI but not the other way around (like how squares are rectangles but not vice versa). Of course, here you have posted a clear, simple example. When discussing the distinction between URI and URL, not only is the answer

NodeJS获取GET和POST请求

杀马特。学长 韩版系。学妹 提交于 2020-01-31 11:17:51
使用NodeJS获取GET请求,主要是通过使用NodeJS内置的 querystring 库处理 req.url 中的查询字符串来进行。 通过 ? 将 req.url 分解成为一个包含 path 和 query 字符串的数组 通过 querystring.parse() 方法,对格式为 key1=value1&key2=value2 的查询字符串进行解析,并将其转换成为标准的JS对象 const http = require('http') const querystring = require('querystring') let app = http.createServer((req, res) => { let urlArray = req.url.split('?') req.query = {} if (urlArray && urlArray.length > 0) { if (urlArray[1]) { req.query = querystring.parse(urlArray[1]) } } res.end( JSON.stringify(req.query) ) }) app.listen(8000, () => { console.log('running on 8000') }) NodeJS获取POST数据 NodeJS获取POST数据,主要是通过响应

Why exclamation is used in URLs? [duplicate]

假装没事ソ 提交于 2020-01-31 09:38:53
问题 This question already has answers here : Closed 9 years ago . Possible Duplicate: What's the shebang (#!) in Facebook and new Twitter URLs for? Hi I was just wondering what is the use of "!" in urls like this http://www.facebook.com/profile.php?id=xxxxxxxx&v=wall#!/profile.php?id=yyyyyy&v=wall I know Facebook uses # (hash) for changing the query string parameters with JavaScript but what is the meaning of exclamation ( ! ), why it is used after # ? We can even work with # only to change the