requests基础使用-实战

交流群:687306936

老师QQ:2024964385

笔记可以添加老师QQ领取

第二天 requests基础使用-实战-www.ddooo.com

  1. 找到数据源

  2. 发送请求

  3. 获取数据

  4. 解析数据

  5. 存储数据

目标:在搜索框输入关键字爬取所有页面的软件名称,分类,介绍并且存储到csv(excel)文件中

# -*- coding: utf-8 -*-
'''
 分析链接
​
•   https://search.ddooo.com/search.html?wd=qq&page=2
​
•   传递给服务器的参数有些不需要也可以不管是get还是post都一样
​
•   https://search.ddooo.com/search.html?wd=软件&page=2 wd是关键字 page是页数
​
•   url原理:ascii码的十六进制前面加%
​
•   经过测试发现qq关键字一共有22页当输入23时页面变化
​
•   发现:不存在的页数返回的源代码的长度始终是14417
'''
from requests import get
from re import findall
from pprint import pprint
def 发送请求(wd='qq'):
    for i in range(1,9999999999999999999999999):
        response=get(f'https://search.ddooo.com/search.html?wd={wd}&page={i}').text
        if len(response)==14417:
            break
        软件名称,软件分类,软件介绍=解析源代码(response)  
        存储数据(软件名称,软件分类,软件介绍)
def 解析源代码(response):
    #提取软件名称
    软件list=list() #软件名称list=[]
    p1='<a class="pic" target="_blank" href=".*?" title=".*?"><font color="red">(.*?)</font>(.*?)</a>'
    软件名称=findall(p1,response)
    for i in 软件名称:
        a=''.join(i) #以指定符号进行拼接
        软件list.append(a) #把a添加到列表的末尾
    
    #提取软件分类
    p1='<span><label>分类:</label>(.*?)</span>'
    软件分类=findall(p1,response)   
    
    #提取软件介绍
    p1='<p class="desc">(.*?)</p>'
    软件介绍=findall(p1,response)
    
    return 软件list,软件分类,软件介绍
def 存储数据(*key):
    名称=key[0]
    分类=key[1]
    介绍=key[2]
    with open('data.csv','a',encoding='utf-8') as f: #a代表追加模式
        f.write('软件名称,软件分类,软件介绍\n')
        for i in range(len(名称)):
            f.write(名称[i]+','+分类[i]+','+介绍[i]+'\n')
        
        
发送请求('qq')

 

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值