各种小笔记

json库 字符串和字典的转换

x = json.loads(y) 把y字符串变成x字典

 

x = json.dumps(y) 把y字典变成字符串

 

 

Unicode编码输出

print x.encode('utf-8')

 

Python 以字符串的形式导入模块

from importlib import import_module
file = import_module(file_name)


爬取时如果request的html文本里没有所需要的数据应该是js加载出来的。在network里查找数据来抓包,找到真实url。如果需要的话要伪装HEADERS 和 post data

有些数据是js代码计算得到的,此时要在source里面查找html代码所在位置,分析js代码的逻辑计算得到所需要的数据。


HTTP常见状态码

  • 200 – 服务器成功返回网页
  • 304 – 网页未修改,使用本地缓存
  • 404 – 请求的网页不存在
  • 503 – 服务器超时

 

 

在构造URL时如果用到中文的话,需要urllib.quote(string)

os.listdir('dir') 方法用于返回指定的文件夹包含的文件或文件夹的名字的列表。

sys.argv[0]是该文件的绝对路径

 

代理云的使用

 

 

疯狂踩坑:

某个可迭代的东西的数据集合要在for外面定义!!!!!!

先定义,再开始for

 

 

网关(gateway)

就是从一个网络连接到另一个网络的关口

如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机(如附图所示)。网络A向网络B转发数据包的过程。
所以说,只有设置好网关的IP地址,TCP/IP协议才能实现不同网络之间的相互通信。那么这个IP地址是哪台机器的IP地址呢?网关的IP地址是具有路由功能的设备的IP地址,具有路由功能的设备有路由器、启用了路由协议的服务器(实质上相当于一台路由器)、代理服务器(也相当于一台路由器)。
 

域名(英语:Domain Name)

简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
 

网域名称系统(DNS,Domain Name System)

是因特网的一项核心服务,它作为可以将域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访问互联网,而不用去记住能够被机器直接读取的IP地址数串。

 

网卡

是一种配件(硬件),也就是可以用来接通网络的一个硬件接口。所以,单纯的网卡并不能够实现对网络的链接,还需要网卡驱动(程序)。

 

vpn的原理

两个私有IP不能直接连接。IP 1 把数据报发给自己的网关,网关封装数据报,加上自己的地址的源地址,原来的目的地址所在的网关的地址为目的地址。这样就构造出了一个tunnel(隧道),到达IP 2 的网关后,去掉头部,得到原来的数据报,就可以路由给IP 2 ,实现通信。

 

python中sys.setdefaultencoding('utf-8')

当读取到的中文字符不是utf-8时,这条语句可以转化为utf-8,解决编码问题

 

 

https://github.com/xingshaocheng/architect-awesome/blob/master/README.md

 

 

 

Python中的global

global语句使得函数可以使用全局变量

 

 

python如何以request payload形式发送post请求

普通的http的post请求的请求content-type类型是:Content-Type:application/x-www-form-urlencoded, 而另外一种形式request payload,其Content-Type为application/json

import json
url = 'https://api.github.com/some/endpoint'
payload = {'some': 'data'}
headers = {'content-type': 'application/json'}
r = requests.post(url, data=json.dumps(payload), headers=headers)

 

 

 

爬虫response数据格式

response.content 是最原始的数据

response.text 经过了奇奇怪怪的编码

 

 

Mac下 .bash_profile 和 .zshrc 两者之间的区别

.bash_profile 中修改环境变量只对当前窗口有效,而且需要 source ~/.bash_profile才能使用
.zshrc 则相当于 windows 的开机启动的环境变量
你也可以在 .zshrc 文件中加一行 source .bash_profile 解决需要 source 才能使用的问题 

 

 

Python urllib模块urlopen()与urlretrieve()详解

1.urlopen()方法

创建一个表示远程url的类文件对象,然后像本地文件一样操作这个类文件对象来获取远程数据。

urlopen返回 一个类文件对象,它提供了如下方法:
read() , readline() , readlines() , fileno() , close() :这些方法的使用方式与文件对象完全一样;
info():返回一个httplib.HTTPMessage 对象,表示远程服务器返回的头信息
getcode():返回Http状态码。如果是http请求,200表示请求成功完成;404表示网址未找到;
geturl():返回请求的url;

 

2.urlretrieve方法

 

直接将远程数据下载到本地。

urllib.urlretrieve(url, filepath)
filepath 是文件的绝对路径名,包括了文件名
posted @ 2019-02-25 18:32  DSKer  阅读(196)  评论(0编辑  收藏  举报