Python使用requests库

248 阅读2分钟

安装 requests 库

pip install requests

项目引进 requests 库

import requests

requests 库中的主要方法

  • requests.request() 构造请求,是下面所有方法基础

  • requests.get(url,params,**kwargs) 获取网页信息

    • url 请求的链接
    • params 请求时传递的链接
    • **kwargs 控制访问的参数
    • 返回的是 response 对象
      • response.status_code 状态码
      • response.text HTTP响应的文本内容
      • response.encoding HTTP编码方式
      • response.content HTTP响应的二进制形式
      • response.headers HTTP响应的头部信息
  • requests.head() 获取网页头部信息

  • requests.post() 向网页进行提交post请求

  • requests.put() 向网页进行put请求

  • requests.patch() 向网页提交局部修改请求

  • requests.delete() 向网页提交删除请求

修改爬虫的请求头,模拟为浏览器进行访问

requests.get(url, headers = {'user-agent':'Mozillia/5.0'})

提交get请求参数

requests.get(url, params={key:value})

爬取图片

r = requests.get( url )
with open( localPath, 'wb' ) as f:
    // 获取二进制形式的请求响应
    f.write(r.content) 
    // 关闭文件流
    f.close() 

安装和使用beautiful-soup

# 安装
pip install beautifulsoup4

# 使用
from bs4 import BeautifulSoup
soup = BeautifulSoup( r.text, 'html.parser' )
# 查看节点
soup.p 
# 查看节点的文本内容
soup.p.string
# 查看节点的所有属性
soup.p.attrs
# 查看节点的指定属性的内容
soup.p.attrs['class']

# 查看所有儿子节点
soup.body.contents
# 查看所有儿子节点的迭代类型
soup.body.children
# 子孙节点的迭代类型
soup.body.descendants

# 查看父亲节点
soup.body.parent
# 查看所有祖先节点的迭代类型
soup.body.parents

# 美化 html 文件格式
soup.prettify()

# 查找元素内容
soup.find_all(name, attrs, recursive, string, **kwargs)
name : 标签名称 ( 'a', ['a','div'] )
attrs: 对标签属性值的检索 ( 'title', id = 'link1' )
recursive: 是否对子孙全部检索,默认True

安装和使用scrapy

# 创建一个新工程
scrapy startproject <工程名称>

# 创建一个爬虫
scrapy genspider <爬虫名称> <爬取的网站链接>

# 获取爬虫配置信息
scrapy settings

# 运行一个爬虫
scrapy crawl <爬虫名称>

# 列出所有爬虫
scrapy list

# 启动url调试命令行
scrapy shell