爬虫的学习

爬虫的初步学习

1.GET与POST请求:
当我们在浏览器中直接输入URL并回车,这便发起了一个GET请求,请求的参数会直接包含到URL中。至于POST请求,它大多于表单提交时发起,其数据是以表单形式传输,并不会体现在URL中。
二者区别:
a、GET是请求页面并返回页面内容,其请求中的参数包含在URL中,数据可以在URL中看到,而POST请求的URL中不会包含这些数据,数据大都是通过表单形式传输的,会包含在请求体中。
b、GET请求提交的数据最多只有1024字节,而POST方式没有限制。
一般来说,登录时,需要提交用户名和密码,其中包含了敏感信息,使用GET方式请求的话,密码就会暴露在URL中,造成密码泄露,所以这里最好以POST方式发送。上传文件时,由于文件内容过大,也会用POST方式。
随即请求头

# 导入UserAgent类
from fake_useragent import UserAgent

ua = UserAgent()
#第一次使用UserAgent时,会从互联网上下载浏览器标志数据库
#如果网速较慢的话,会出现报错,多试几次就好了。

#print(ua.ie) # 获取IE浏览器标志
print(ua.random) # 获取一个随机的浏览器标志

# 如果要写在一行:UserAgent().random

获取网页数据

import requests
from fake_useragent import UserAgent

def get_html(url,times):
    '''
    这是一个用户获取网页源数据的函数
    :param url: 目标网址
    :param times: 递归执行次数
    :return: 如果有,就返回网页数据,如果没有,返回None
    '''
    try:
        res = requests.get(url = url,headers = {"User-Agent":UserAgent().random)   #带上请求头,获取数据
        if res.status>=200 and res.status<=300:                     #两百打头的标识符标识网页可以被获取
            return res  
        else:   
            return None
    except Exception as e:
        print(e)        # 显示报错原因(可以考虑这里写入日志)
        if times>0:
            get_html(url,times-1)   # 递归执行

ID遍历爬虫

import time

def get_ID_html(url_pool,res_pool):
    '''
    这是一个用ID循环去下载网页的函数
    :param url_pool: url池
    :param res_pool:返回值池
    :return: 无
    '''
    while url_pool:
        for url in url_pool:
            try:
                res = requests.get(url=url, headers = {"User-Agent":UserAgent().random)  # 带上请求头,获取数据
                url_pool.remove(url)
                res_pool.append(res)
            except:
                pass
            finally:
                time.sleep(2)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值