笔记----0815

0.知识点简要回顾

一.爬虫的过程

1.
需求,确定有需求的人到底想要什么

2.
根据需求寻找网站

3.
网站数据获取到本地(urllib,requests)

4.
定位数据(正则,xpath,json)

5.
存储(数据库,磁盘,网络发送)(mysql,redis,文件)
6.反爬虫:其他公司不想让我们获取他们的数据,通过HTTP请求头,请求频率(通过判断是不是同一个ip,投毒:一直给你假数据),判断是否是爬虫程序
7.发送请求                (HTTP)

1.我是谁,我找谁            (url)

2.名字    (User-Agent:            (HTTP请求的名字) 1.py版本 2.urllib)

3.介绍信息                (referer:介绍人,从哪个页面跳转到我的页面,要跳转的地方就是我请求的页面)

4.你有没有来过                (cookie:返回信息,标识你来过)

  返回响应                (response)
8.获取webserver的返回信息
1.url
2.接口设计,response = openurl(url)
3.存储response

 

 

 

1.requests 的get用法(resposne.content 相当于 response.read())

import requests
url = 'http://www.baidu.com'
response = requests.get(url)
with open('baidu.html', 'wb') as f:
    # response = urllib.request.urlopen(url)
    f.write(response.content)

 2. requests 的post用法

import requests
import json
# 1. url
url = 'http://fanyi.baidu.com/sug'
# 2. form/ data/ body
def translate(kw):
    form = {
        'kw': kw
    }
    response = requests.post(url, data=form)

    # str = response.content.decode('utf-8/gbk/gb2312/gb18080') =
    response.encoding = 'utf-8/gbk/gb2312/gb18080' #指定可用的编码格式
    str = response.text

    # 4. 解析json
    res_dict = json.loads(response.text)
    # 5. 打印翻译结果
    #print(res_dict)
    result = res_dict['data'][0]['v']
    return result

if __name__ == '__main__':
    res = translate('天气')
    print(res)

 3. mysql 测试,mysql_coon 主要的功能就是, 将链接数据库的操作变成只连接一次。

import pymysql

class mysql_conn(object):
    # 魔术方法,构造函数:初始化魔术方法。触发时机:初始化对象时触发(不是实例化触发,但是和实例化在一个操作中)。参数:至少有一个self接收对象。返回值:无。作用:初始化对象的成员。注意:使用该方式初始化的成员都是直接写入对象当中,类中无法具有。
    def __init__(self):
        self.db = pymysql.connect(host='127.0.0.1', user='root', password='abc123', port=3306, database='py1011')
        self.cursor = self.db.cursor()

    # 执行modify(修改)相关的操作
    def execute_modify_mysql(self, sql):
        self.cursor.execute(sql)
        self.db.commit()

    # 魔术方法, 析构化 ,析构魔术方法。触发时机:当对象没有用(没有任何变量引用)的时候被触发。参数:一个self接收对象。返回值:无。作用:使用完对象时回收资源,注意:del不一定会触发当前方法,只有当前对象没有任何变量接收时才会触发。
    def __del__(self):
        self.cursor.close()
        self.db.close()

if __name__ == '__main__':
    sql = 'insert into xueqiu_test values (3)'
    mc = mysql_conn()
    mc.execute_modify_mysql(sql)

    sql = 'insert into xueqiu_test values (4)'
    mc.execute_modify_mysql(sql)

    sql = 'insert into xueqiu_test values (5)'
    mc.execute_modify_mysql(sql)

    sql = 'insert into xueqiu_test values (6)'
    mc.execute_modify_mysql(sql)

 4. 正则

1.(用match)正则需从头开始匹配 ,匹配内容开头必须相同,否则匹配失败

2. ".":可以匹配除换行符外的任意字符

3.(以h开头后面必须跟着一个“.”--》‘h\.’):‘h1111’,‘h.111’。前者匹配失败,后者匹配成功,反斜杠:转义字符,取消其之后符号的特殊意义,字符串形式输出(原样输出)

4.‘h\\\\’--> 计算机将其识别成 ‘h\\’的字符串(两个反斜杠‘\’会被计算机识别成一个反斜杠),前一个\是转义字符,打印出来是‘h\’

5.$:结束符,比如‘h.$’: ‘h’后面只能跟着一个字符,之后必须结束,长度只能是 2

6. ‘\d’:匹配任意0-9的数字,‘*’:前面所匹配的东西,匹配次数0-n次
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值