url

requests模块学习

扶醉桌前 提交于 2020-02-26 12:14:35
requests response = request.get(url) print(response) // 获取请求状态码 response.text response.encoding // 推测网页编码 response.content // byte形式显示原始网页 response.content.decode() //解码 p = requests.get ( "https://www.sina.com.cn/" ) print ( p ) p.text p.content.endoce ( ) p.ecoding p.ecode p.encoding p.content.decode ( encoding = 'ISO-8859-1' ) p.content.decode ( encoding = 'utf-8' ) 7.存储图片 with open ( "a.png" , "wb" ) as f: f.write ( img1.content ) 8.贴吧爬取实例 # -*- coding: utf-8 -*- "" " Created on Wed Feb 26 09:16:08 2020 @author: Administrator " "" import requests import os os.chdir ( r "H:\实操\学习\01\spyder"

url参数中出现+、空格、=、%、&、#等字符的解决办法

﹥>﹥吖頭↗ 提交于 2020-02-26 10:50:31
url参数中出现+,空格,/,?,%,#,&,=等特殊符号的时候,可能在服务器端无法获得正确的参数值,如何是好? 解决办法: 将这些字符转化成服务器可以识别的字符,对应关系如下: URL字符转义 用其它字符替代吧,或用全角的。 符号 意义 转换 + URL 中+号表示空格 %2B 空格 URL中的空格可以用+号或者编码 %20 / 分隔目录和子目录 %2F ? 分隔实际的URL和参数 %3F % 指定特殊字符 %25 # 表示书签 %23 & URL 中指定的参数间的分隔符 %26 = URL 中指定参数的值 %3D 对于js,使用encodeURIComponent函数即可。 来源: https://www.cnblogs.com/cag2050/p/7514406.html

HTTP 方法:GET 对比 POST

走远了吗. 提交于 2020-02-26 08:32:54
两种最常用的http方法是:GET和POST。 什么是HTTP? 超文本传输协议(http)的设计目的是保证客户机与服务器的通信。 HTTP的工作方式是客户机与服务器之间的请求-应答协议。 web 浏览器可能是客户端,而计算机上的网络应用程序也可能作为服务器端。 举例:客户端(浏览器)向服务器提交 HTTP 请求;服务器向客户端返回响应。响应包含关于请求的状态信息以及可能被请求的内容。 两种 HTTP 请求方法:GET 和 POST 在客户机和服务器之间进行请求-响应时,两种最常被用到的方法是:GET 和 POST。 GET - 从指定的资源请求数据。 POST - 向指定的资源提交要被处理的数据 1. GET 方法 请注意,查询字符串(名称/值对)是在 GET 请求的 URL 中发送的: /test/demo_form.asp?name1=value1&name2=value2 注意:get方法传参不可以有空格!否则浏览器会对其进行编译! 有关 GET 请求的其他一些注释: GET 请求可被缓存 GET 请求保留在浏览器历史记录中 GET 请求可被收藏为书签 GET 请求不应在处理敏感数据时使用 GET 请求有长度限制 GET 请求只应当用于取回数据 POST /test/demo_form.asp HTTP/1.1 Host: w3schools.com name1

python多协程爬虫示例

谁说我不能喝 提交于 2020-02-26 05:24:50
写python协程时使用gevent模块和queue模块可以大大提高爬虫速度。在同时爬取多个网站时,原来用for循环一个网站一个网站按循序顺序爬,就像先烧饭后烧菜,两个步骤异步进行。使用多协程可以让爬虫自己选择爬取顺序,就像边烧饭边烧菜,两个步骤同步进行,速度自然快了。 不多说了,来看下代码吧: from gevent import monkey monkey.patch_all() #打上多协程布丁,下面的程序就可以执行多协程了 import requests,gevent,csv from gevent.queue import Queue from bs4 import BeautifulSoup #把所有URL都放到一个列表里: url_list=[] i=1 for i in range(10): i=i+1 url='http://www.mtime.com/top/tv/top100/index-'+str(i)+'.html' url_list.append(url) #第一个url和别的不一样,需要单独加入 url_0='http://www.mtime.com/top/tv/top100/' url_list.append(url_0) headers={ 'User-Agent': } csv_file=open('时光网电影列表.csv','a+'

Node安装及搭建简单HTTP服务器

时光毁灭记忆、已成空白 提交于 2020-02-26 04:53:04
注:本文安装系统为mac,windows及其他系统下载对应安装包 ,mac下载后的安装包为apk文件,windows为msi文件。 安装 1.在网上下载node安装包, 官方网站 2.双击下载文件,按步骤安装,安装完成后就可以使用node和npm命令了。 3.打开终端 输入 node -v,终端将提示安装的node版本。 4.nodejs运行环境安装成功。 常用的指令: npm install moduleNames :安装Node模块 安装完毕后会产生一个node_modules目录,其目录下就是安装的各个node模块。 node的安装分为全局模式和本地模式。 一般情况下会以本地模式运行,包会被安装到和你的应用程序代码的本地node_modules目录下。 在全局模式下,Node包会被安装到Node的安装目录下的node_modules下。 全局安装命令为$npm install -g moduleName。 获知使用$npm set global=true来设定安装模式,$npm get global可以查看当前使用的安装模式。 npm view moduleNames :查看node模块的package.json文件夹 注意事项:如果想要查看package.json文件夹下某个标签的内容,可以使用$npm view moduleName labelName npm list

fetch和XMLHttpRequest

南笙酒味 提交于 2020-02-26 04:37:01
fetch和XMLHttpRequest 如果看网上的fetch教程,会首先对比XMLHttpRequest和fetch的优劣,然后引出一堆看了很快会忘记的内容(本人记性不好)。因此,我写一篇关于fetch的文章,为了自己看着方便,毕竟工作中用到的也就是一些很基础的点而已。 fetch,说白了,就是XMLHttpRequest的一种替代方案。如果有人问你,除了Ajax获取后台数据之外,还有没有其他的替代方案? 这是你就可以回答,除了XMLHttpRequest对象来获取后台的数据之外,还可以使用一种更优的解决方案fetch。 如何获取fetch 到现在为止,fetch的支持性还不是很好,但是在谷歌浏览器中已经支持了fetch。fetch挂在在BOM中,可以直接在谷歌浏览器中使用。 查看fetch的支持情况: fetch的支持情况 当然,如果不支持fetch也没有问题,可以使用第三方的ployfill来实现只会fetch: whatwg-fetch fetch的helloworld 下面我们来写第一个fetch获取后端数据的例子: // 通过fetch获取百度的错误提示页面 fetch('https://www.baidu.com/search/error.html') // 返回一个Promise对象 .then((res)=>{ return res.text() // res

浅谈HTTP中Get与Post的区别

限于喜欢 提交于 2020-02-26 03:49:56
浅谈HTTP中Get与Post的区别 Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE。URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP中的GET,POST,PUT,DELETE就对应着对这个资源的查,改,增,删4个操作。到这里,大家应该有个大概的了解了,GET一般用于获取/查询资源信息,而POST一般用于更新资源信息。    1 .根据HTTP规范,GET用于信息获取,而且应该是安全的和幂等的。   (1).所谓安全的意味着该操作用于获取信息而非修改信息。换句话说,GET 请求一般不应产生副作用。就是说,它仅仅是获取资源信息,就像数据库查询一样,不会修改,增加数据,不会影响资源的状态。   * 注意:这里安全的含义仅仅是指是非修改信息。   (2).幂等的意味着对同一URL的多个请求应该返回同样的结果。这里我再解释一下 幂等 这个概念:    幂等 (idempotent、idempotence)是一个数学或计算机学概念,常见于抽象代数中。   幂等有一下几种定义:   对于单目运算,如果一个运算对于在范围内的所有的一个数多次进行该运算所得的结果和进行一次该运算所得的结果是一样的,那么我们就称该运算是幂等的。比如绝对值运算就是一个例子,在实数集中,有abs(a)=abs(abs

linux下svn命令大全

痞子三分冷 提交于 2020-02-26 03:33:46
linux下svn命令大全 svn(subversion)版本管理工具,svn服务器有2种运行方式:独立服务器和借助apache。2种方式各有利弊。 不管是那种方式,都需要使用各种命令来实现。Linux下的常用svn命令: 1、 将文件checkout到本地目录 svn checkout path(path是服务器上的目录) 例如:svn checkout svn://192.168.1.1/pro/domain 简写:svn co 2、 往版本库中添加新的文件 svn add file 例如:svn add test.php(添加test.php) svn add *.php(添加当前目录下所有的php文件) 3、 将改动的文件提交到版本库 svn commit -m “LogMessage“ [-N] [--no-unlock] PATH...(如果选择了保持锁,就使用–no-unlock开关) 例如:svn commit -m “add test file for my test“ test.php 简写:svn ci 4、 加锁/解锁 svn lock -m “LockMessage“ [--force] PATH... 例如:svn lock -m “lock test file“ test.php svn unlock PATH 5、 更新到某个版本 svn

小程序使用wepy框架搭建项目

久未见 提交于 2020-02-26 00:40:59
初始化项目 运行 wepy init standard heima_ugo 命令,初始化小程序项目 运行 cd heima_ugo 进入项目根目录 运行 npm install 安装所有依赖项 运行 wepy build --watch 命令,开启 wepy 项目的实时编译功能 打开微信开发者工具,加载 wepy 项目并查看效果 解决 ESLint 语法报错问题 梳理项目结构 清理并重置 src -> pages -> index.wpy 首页 在根目录的 .prettierrc 配置文件内,新增 “semi”: false 配置,防止每次格式化代码,添加分号的问题 清理并重置 src -> app.wpy 中的代码,将 style 和 script 标签中,不必要的代码删除掉 清空 src -> components 和 src -> mixins 目录 将梳理完毕后的项目,上传至码云 绘制 tabBar 新建 src -> pages -> tabs 文件夹,用来存放所有 tabBar 相关的页面 删除 src -> pages -> index.wpy 页面,并在 tabs 目录中,新建 home.wpy,cates.wpy,search.wpy,cart.wpy,me.wpy 五个 tabBar 相关的页面 将页面路径,记录到 src -> app.wpy 文件的

scala基础语法-----Spark基础

女生的网名这么多〃 提交于 2020-02-26 00:04:23
注:最近在上网课,然后这学期开了一门spark,以下文字来自课堂发的资料,不知道发在这上面算不算侵权,主要是为了自己复习方便,侵权删。 然后我根据上课内容进行了一些练习,代码在最下方。 scala基本语法 我们可以根据scala 菜鸟教程来学习 地址为: https://www.runoob.com/scala/scala-tutorial.htm 1.变量声明 /** * 定义变量使用var或者val关 键 字 * 语法: * var | val 变量名称(: 数据类型) =变量值 */ // 使用val修饰的变量, 值不能为修改,相当于java中final修饰的变量 val name = "tom" name=”李四” //错误 // 使用var修饰的变量,值可以修改 var age = 18 age=40 //正确 ,可以修改 // 定义变量时,可以指定数据类型,也可以不指定,不指定时编译器会自动推测变量的数据类型 val name2 : String = "jack" 2.变量声明字符串的格式化输出 val al name = "JackMa" val price = 998.88d val url = "www.baidu.com" // 普通输出,注意这里是可以使用逗号分隔的,但是在java中,我们是需要用“+”号拼接 println ( "name=" + name