Python常用扩展安装及使用方法

一.requests

1.安装

pip install requests

2.使用方法

(1)GET
import requests
 
kw = {'wd':'长城'}
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()
response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)
 
# 查看响应内容,response.text 返回的是Unicode格式的数据
print response.text

# 查看响应内容,response.content返回的字节流数据
print respones.content

# 查看完整url地址
print response.url

# 查看响应头部字符编码
print response.encoding

# 查看响应码
print response.status_code

(2)POST

import requests
 
formdata = {
    "type":"AUTO",
    "i":"i love python",
    "doctype":"json",
    "xmlVersion":"1.8",
    "keyfrom":"fanyi.web",
    "ue":"UTF-8",
   "action":"FY_BY_ENTER",
   "typoResult":"true"
}
 
url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"
headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}
response = requests.post(url, data = formdata, headers = headers)
print response.text
 
# 如果是json文件可以直接显示
print response.json()

(3)Cookies

import requests
 
response = requests.get("http://www.baidu.com/")
 
# 返回CookieJar对象:
cookiejar = response.cookies
 
# 将CookieJar转为字典:
cookiedict = requests.utils.dict_from_cookiejar(cookiejar)
 
print cookiejar
print cookiedict

(4)Session

import requests
 
# 创建session对象,可以保存Cookie值
ssion = requests.session()
 
# 处理 headers
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}
 
# 需要登录的用户名和密码
data = {"email":"[email protected]", "password":"alarmchime"}  
 
# 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里
ssion.post("http://www.renren.com/PLogin.do", data = data)
 
# ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面
response = ssion.get("http://www.renren.com/410043129/profile")
 
# 打印响应内容
print response.text

(5)处理HTTPS请求 SSL证书验证

Requests也可以为HTTPS请求验证SSL证书:
要想检查某个主机的SSL证书,你可以使用 verify 参数(也可以不写)

import requests
response = requests.get("https://www.baidu.com/", verify=True)
 
# 也可以省略不写
# response = requests.get("https://www.baidu.com/")
print r.text

二、Beautiful Soup4

1.安装

pip install beautifulsoup4

2.使用方法

创建bs对象
# 打开本地HTML文件的方式来创建对象
soup = BeautifulSoup(open('xxxx.html'))
# 创建Beautiful Soup对象
soup = BeautifulSoup(html, "lxml")  # 指定lxml解析器

# 格式化输出soup对象内容
print(soup.prettify())

Tag 类

# 获取Tag  soup.标签名  查找的是在所有内容中的第一个符合要求的标签
print(soup.标签名)

# name是获取当前标签名称,soup.name为[document]
print(soup.标签名.name)

# attrs获取当前标签的所有属性和值,以键值对形式存入字典返回  下文以 a 标签为例
print(soup.a.attrs)
# 获取标签某一属性的值
print(soup.a['href'])
# 修改标签某一个属性的值
soup.a['href'] = "http://www.peipeipei.com"
# 删除某一属性
del soup.a['class']

NavigableString 类 以p标签为例

# 获取标签内内容
print(soup.p.string)
print(type(soup.p.string))

Comment类 以a标签为例,a标签内内容为注释

<a href="http://example.com/elsie" class="sister" id="link1"><!-- Elsie --></a>,

print(soup.a.string)  # 注释符号不输出,只输出内容
# Elsie
print(type(soup.a.string))
# 

遍历文档树 以head标签为例

"The Dormouse's story"

#  .content 属性可以将tag的子节点以列表的方式输出
print(soup.head.contents)
# [The Dormouse's story]
print(soup.head.contents[1])  # 获取列表中某一元素

# .children 返回的是一个list生成器对象
print(soup.head.children)
# 
for child in soup.body.children:
    print(child)

# .descendants 对所有tag的子孙节点进行递归循环
for child in soup.descendants:
    print(child)

# .string 返回最里面的内容
print(soup.head.string)
print(soup.title.string)  # 两个输出是一样的

搜索文档树

find_all(name, attrs, recursive, text, **kwargs)
# find用法相同,只返回一个

# name参数可以查找所有名字为 name 的tag,可以是字符串,正则表达式,列表
print(soup.find_all('a'))
for tag in soup.find_all(re.compile("^b")):
    print(tag.name)
print(soup.find_all(["a", "b"]))

# keyword参数直接匹配属性对应的值
print(soup.find_all(class_="sister"))  # 因为class在python中已经有了,为了防止冲突,所以是class_
print(soup.find_all(id='link2'))

# text参数搜索文档中的字符串内容,与name参数的可选值一样,text参数接受字符串,正则表达式,列表
print(soup.find_all(text="Elsie"))
print(soup.find_all(text=["Tillie", "Elsie", "Lacie"]))
print(soup.find_all(text=re.compile("Dormouse")))

三、pymysql

1、安装pymysql

 pip3 install PyMySQL

2、数据库连接

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')

# 使用 cursor() 方法创建一个游标对象 cursor
cursor = db.cursor()

# 使用 execute()  方法执行 SQL 查询 
cursor.execute("SELECT VERSION()")

# 使用 fetchone() 方法获取单条数据.
data = cursor.fetchone()

print("Database version : %s " % data)

# 关闭数据库连接
db.close()

3、插入数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 插入语句
sql = "INSERT INTO EMPLOYEE(FIRST_NAME, \
       LAST_NAME, AGE, SEX, INCOME) \
       VALUES ('%s', '%s',  %s,  '%s',  %s)" % \
      ('Mac', 'Mohan', 20, 'M', 2000)
try:
    # 执行sql语句
    cursor.execute(sql)
    # 执行sql语句
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

4、查询数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 查询语句
sql = "SELECT * FROM EMPLOYEE \
       WHERE INCOME > %s" % (1000)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 获取所有记录列表
    results = cursor.fetchall()
    for row in results:
        fname = row[0]
        lname = row[1]

        age = row[2]
        sex = row[3]
        income = row[4]
        # 打印结果
        print("fname=%s,lname=%s,age=%s,sex=%s,income=%s" % \
              (fname, lname, age, sex, income))
except:
    print("Error: unable to fetch data")

# 关闭数据库连接
db.close()
fetchone():该方法获取下一个查询结果集。结果集是一个对象
fetchall(): 接收全部的返回结果行.
rowcount:这是一个只读属性,并返回执行execute()方法后影响的行数。

5、更新数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 更新语句
sql = "UPDATE EMPLOYEE SET AGE = AGE + 1 WHERE SEX = '%c'" % ('M')
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交到数据库执行
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

# 关闭数据库连接
db.close()

6、删除数据

import pymysql

# 打开数据库连接
db = pymysql.connect(host='localhost',
                     user='testuser',
                     password='test123',
                     database='TESTDB')

# 使用cursor()方法获取操作游标 
cursor = db.cursor()

# SQL 删除语句
sql = "DELETE FROM EMPLOYEE WHERE AGE > %s" % (20)
try:
    # 执行SQL语句
    cursor.execute(sql)
    # 提交修改
    db.commit()
except:
    # 发生错误时回滚
    db.rollback()

# 关闭连接
db.close()

你可能感兴趣的:(python,python,开发语言,beautifulsoup,pip,爬虫)