requests模块

1. 爬虫基础模板

import requests


class MaoYanSpider(object):
    def __init__(self):
        pass

    def get_html(self, url):
        """发送请求功能"""
        pass

    def parse_html(self, html):
        """提取数据"""
        pass

    def save(self):
        """存储数据"""
        pass

    def crawl(self):
        """程序的入口"""
        pass


spider = MaoYanSpider()
spider.crawl()

1. requests.get()

该方法用于 GET 请求,表示向网站发起请求,获取页面响应对象。语法如下:

response = requests.get(url,headers=headers,params,timeout)
  • url:要抓取的url 地址。
  • headers:用于包装请求头信息。
  • params:请求时携带的查询字符串参数。

2. HttpResponse响应对象

我们使用 Requests 模块向一个URL发起请求后会返回一个 HttpResponse响应对象。

响应对象属性:

  • text:获取响应内容字符串类型
  • content:获取到响应内容bytes类型(抓取图片、音频、视频文件)
  • encoding:查看或者指定响应字符编码

3. 正则表达式

定义:按照一定的规则 从每个字符串当中匹配到我们想要数据

r_list=re.findall('正则表达式',html,re.S)

正则表达式元字符

元字符 含义
. 任意一个字符(不包括\n)
\d 一个数字
\s 空白字符
\S 非空白字符
[] 包含[]内容
* 出现0次或多次
+ 出现1次或多次

贪婪匹配和非贪婪匹配:

  • 贪婪匹配:匹配重复的元字符总是尽可能多的向后匹配内容。
  • 非贪婪匹配:让匹配重复的元字符尽可能少的向后匹配内容。

正则表达式分组:将每个圆括号中子模式匹配出来的结果提取出来

  • 先按整体正则匹配,然后再提取分组()中的内容
  • 在网页中,想要什么内容,就加()
  • 如果有2个及以上分组(),则结果中以元组形式显示 [(),(),()]

4. pymysql

  • 建立数据库连接db = pymysql.connect(...)
    • 参数host:连接的mysql主机,如果本机是’127.0.0.1’
    • 参数port:连接的mysql主机的端口,默认是3306
    • 参数database:数据库的名称
    • 参数user:连接的用户名
    • 参数password:连接的密码
    • 参数charset:通信采用的编码方式,推荐使用utf8
  • 创建游标对象cur = db.cursor()
  • 游标方法: cur.execute(“insert …”)
  • 提交到数据库或者获取数据 : db.commit()
  • 关闭游标对象 :cur.close()
  • 断开数据库连接 :db.close()

你可能感兴趣的:(开发语言)