urllib :DOC 地址
Python 2 中 分为 urllib 和urllib2。
Python 3 中 为 urllib ,是python 中的标准库。
urllib库可以读取HTML文件、图像文件 或者其他任何文件流。
BeautifullSoup4
(也叫BS4)DOC 中文文档
1.他不是Python标准库,所以需要安装 。
2.window下安装方法: cmd命令行中 : pip install beautifulsoup4。
3.安装完成后导入一下看看是否报错,不报错就是安装成功了。
#导入
from bs4 import BeautifulSoup
import requests
#地址
url = '不写具体的地址了'
request = requests.get( url )
responseData = request.text
soup = BeautifulSoup(responseData,'html.parser')
print(soup.prettify())#标准缩进格式进行输出
print(soup.title)#<title>
print(soup.title.string)#标签里面的内容
print(soup.title.parent.name)#head
print(soup.p)#<p>标签只查找第一个吧
print(soup.h1)#<h1>标签 只查找第一个吧
print(soup.find_all('a'))#查找所有《a》标签的
print(soup.get_text())#获取所有文本内容
#Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,
# 所有对象可以归纳为4种: Tag , NavigableString , BeautifulSoup , Comment
#Tag 标签 比如 <title>
#先有一个soup 然后的到一个tag 这里我要获得的是<a>标签
#tag_a = soup.a
print(tag_a)
#print(tag_a.name)#获取标签的名字,就是标签叫什么 这个就是 a
#获取标签的属性,这个返回的是所有的属性 是个字典
#!!!!标签的属性的操作方法和字典一样 即可以通过 tag_a['href'] 的到 对应的值
print(tag_a.attrs)
print(tag_a['title'])#
#NavigableString 标签中的字符串
print(tag_a.string)
# BeautifulSoup 对象表示的是一个文档的全部内容
# Comment 注释
print(tag_a.contents)#标签中的内容 ,返回列表
subclass = '#J_list > ul > li > div.detail > h2 > a'
subclasses = soup.select(subclass)
print(subclasses)
for subcls in subclasses:
dict = {
'subclass':subcls.string,
'href':subcls['href']
}
print(dict)
Requests
安装: pip install requests
中文文档:http://docs.python-requests.org/zh_CN/latest/user/quickstart.html
import requests
urlStr = 'url地址'
#常用的两种方式 get post 其他的查手册
#get方法 可以传param也可以不传 param:以一个字符串字典来提供这些参数
r = requests.get(urlStr,{"processid":"35"})
r = requests.get(urlStr,{"processid":"35"},headers = {'user-agent':'my-app/0.0.1'})#定制请求头 hearders 查手册
r = requests.get('')
r = requests.post(urlStr, data = {"processid":"35"})
r.encoding='ISO-8859-1'# 设置编码格式
print(r.url)#当时post提交时 url中是看不到data数据的
print(r.text)#这个url的内容
print(r.encoding)# 编码格式
print(r.headers)#头部信息
#print(r.content)#这个会把url中所有的内容都打出来,text 不会 比如 \r \n 二进制相应内容 以字节的方式访问请求响应体,比如图片文件等
#print(r.json())#如果接口返回的是个json字符串,直接用这个就可以啦 ,如果不是json还用这个的话,会抛出一个异常
print(r.raise_for_status())# 检查请求是否成功 不知道怎么用,下面的好使 用它来抛异常
print(r.status_code)# 检查请求是否成功 失败了也抛出异常 是一个返回码 200 404 503
#print(r.raw)#原始相应内容 查手册
#post传文件 查手册
#请求头 cookie