初识爬虫

1 http的简单介绍1 数据类型比较广泛, json/text/lxml/html/data 2 请求是无状态协议,这次的请求和上次的请求没有任何关系,请求完了以后,服务器和客户端的连接会断掉。socket 保持长连接,请求以后,服务器和客户端的连接不会断掉 3 http有请求报文 和响应报文 请求报文: 1 请求行 : http://ww.apiopen.to...
摘要由CSDN通过智能技术生成

1 http的简单介绍

1 数据类型比较广泛, json/text/lxml/html/data
2 请求是无状态协议,这次的请求和上次的请求没有任何关系,请求完了以后,服务器和客户端的连接会断掉。socket 保持长连接,请求以后,服务器和客户端的连接不会断掉
3 http有请求报文 和响应报文

    请求报文:
        1 请求行 : http://ww.apiopen.top/weatherApi?city=
        2 请求头:
           User-Agent: 标示目标(通过什么方式来访问对象)
            host: 主机
            connection: 服务器和客户端之间的连接状态
        3 请求体: 参数 : 郑州 请求体为在请求里面放的参数
        响应报文:
        1 状态行
        2 响应头
        3 响应体:请求数据就是为了得到响应体
htttps://www.apiopen.top/weatherApi?city=郑州
协议 + 域名/ip + 路径 以?分割,   ?后面的为参数
参数以 = 分割, =前面的是参数名, 后面是参数值
参数与参数之间以 & 符号 隔开

4 http请求方法:

4 http请求方法
    method(post,get,delete,putpost: 可以对数据进行增删改查
    get: 可以对数据进行增删改查
        1 getpost的区别(面试必问)
            1 get的参数放在url的后面,是暴露的
            2 post 的参数放在请求体当中,是隐藏的。
        2 url的长度大小不能超过1KB(1024B)
            1B=8b  一个英文字母:1b, 一个汉字是2b
            get 将所有的想要发送到服务器的内容都放到url中
        上传文件要使用post 方法。

2 简单的爬虫

from urllib.request import Request, urlopen, ProxyHandler, build_opener
import random

user_agent_list = [
    'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Safari/537.36',
    'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1',
    'Mozilla/5.0 (Linux; Android 5.0; SM-G900P Build/LRX21T) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.99 Mobile Safari/537.36',
    'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:61.0) Gecko/20100101 Firefox/61.0'
]
headers = {
    'User-Agent': random.choice(user_agent_list)
}

ip_list = [
    '124.193.85.88:8080',
    '122.114.31.177:808',
    '111.155.124.84:8123',
    '111.155.116.207:8123',
    '122.72.18.34:80',
    '61.135.217.7:80',
    '111.155.116.234:8123'
]

proxies = {
    'https': random.choice(ip_list)
}

request = Request('http://www.baidu.com', headers=headers)

# urlopen 不支持http高级函数:cookie 验证 代理等内容
# 如果要使用这些内容的话,需要使用bulid_opener对象进行处理
proxy_handler = ProxyHandler(proxies)
opener = build_opener(proxy_handler)

response = opener.open(request)
print(response.read().decode())
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值