学习资料

学习资料_第1张图片

import requests
if __name__ == '__main__':
    #step1:指定url
    url='https://www.sogou.com/'
    #step2:发起请求
    #get方法会返回一个响应对象
    res=requests.get(url=url)
    #step3:获取相应数据.text返回的是以字符串形式的
    page=res.text
    print(page)
    #step4:持久化存储
    with open('./sogou.html','w',encoding='utf-8')as fp:
        fp.write(page)
    print("爬取数据结束")

简单的网页采集器 搜索引擎

import requests
if __name__ == '__main__':
    url='https://www.sogou.com/sie?'
    #处理url携带的参数:封装到字典中
    kw=input('enter a word:')
    param={
     
        'query':kw
    }
    #对指定url发起的请求是携带参数的url是携带参数的
    res=requests.get(url=url,params=param)
    passs=res.text
    print(passs)
    fileName=kw+'.html'
    with open(fileName,'w',encoding='utf-8') as fp:
    	fp.write(passs.text)
    print(fileName,'保存成功!!!!')
    

ps:输入空姐,则在网页中搜索空姐

搞定百度翻译

ajax 前端局部刷新
百度翻译,是post请求携带的参数
响应的是json数据
学习资料_第2张图片
post请求要携带参数
学习资料_第3张图片
json数据

import requests
import json
if __name__ == '__main__':
    #指定url链接
    post_url='https://fanyi.baidu.com/sug'
    #post请求参数处理(同get请求一致)
    data={
     
        'kw':'dog'
    }
    # 伪装一下浏览器
    headers={
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
    #请求发送
    res=requests.post(url=post_url,data=data,headers=headers)
    #获取响应数据:json()方法返回一个obj(对象)(如果确认响应数据是json类型的,才可以使用JSON)
    dic_obj=res.json()
    print(dic_obj)
    #持久化存储
    fp=open('./dog.json','w',encoding='utf-8')
    json.dump(dic_obj,fp=fp,ensure_ascii=False)#设置不存在字符模式

ps.可以自定义一个输入函数

爬取豆瓣电影中的详细数据

网址:https://movie.douban.com/j/chart/top_list?type=24&interval_id=100%3A90&action=&start=100&limit=20
学习资料_第4张图片

因为是json异步加载数据

import requests
import json
if __name__ == '__main__':
    url='https://movie.douban.com/j/chart/top_list'
    param={
     
        "type": "24",
        "interval_id": "100:90",
        "action": "",
        "start": "1",#从库中的第几部电影去取
        "limit": "20",#一次取出的个数
    }
    headers={
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
    req=requests.get(url=url,params=param,headers=headers)
    li_data=req.json()#json返回一个列表
    fp=open('./douban.json','w',encoding='utf-8')
    json.dump(li_data,fp=fp,ensure_ascii=False)#避免出现字符型数据
    print('over!!!')

练习肯德基餐厅查询

学习资料_第5张图片
学习资料_第6张图片

import requests
if __name__ == '__main__':
    url='http://www.kfc.com.cn/kfccda/storelist/index.aspx'
    headers={
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
    param={
     
        "keyword": "青岛",
        "pageIndex": "1",
        "pageSize": "10",
    }
    response=requests.get(url=url,params=param,headers=headers)
    list_data=response.text
    print(list_data)

爬取化妆品管理信息平台url=http://scxk.nmpa.gov.cn:81/xk/

学习资料_第7张图片
学习资料_第8张图片
因为网页中有很多链接,每一个id代表一个公司的详细数据所以要访问每一个链接
先把所有的id打印出来

import requests
import json
if __name__ == '__main__':
    #批量获取不同企业的id值
    url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsList'
    #参数的封装
    data={
     "on":"true",
          "page":"1",
          "pageSize":"15",
          "productName":"",
          "conditionType":"1",
          "applyname":"",
          "applysn":"",}
    headers={
     'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:74.0) Gecko/20100101 Firefox/74.0'}
    id_list = []  # 存储企业的id
    json_ids=requests.post(url=url,headers=headers,data=data).json()
    for dic in json_ids['list']:
        id_list.append(dic['ID'])#append字典的添加
    #获取企业详情数据
    post_url='http://scxk.nmpa.gov.cn:81/xk/itownet/portalAction.do?method=getXkzsById'
    for id in id_list:
        data={
     
            'id':id
        }
    data_json=requests.post(url=post_url,data=data,headers=headers).json()
    print(data_json,'----------------------------')

你可能感兴趣的:(python,python)