python爬虫-requests模块(路飞学城)

2022/4/18 9:13:06

本文主要是介绍python爬虫-requests模块(路飞学城),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

requests模块

python中原生的一款基于网络请求的模块,其作用是:模拟浏览器发起请求。
如何使用:

  • 1.指定url
    url="......"
  • 2.发起请求:使用get方法发起get请求,该方法会返回一个响应对象,参数url表示请求对应的url
    response=requests.get(url =url)
  • 3.获取响应数据:通过调用响应对象的text属性,返回响应对象中存储的字符串形式的响应数据
    page_text=response.text
  • 4.持久化存储
with open ('文件名','w',encoding='utf-8') as fp:
        fp.write(page_text)
    print('数据爬取完毕!')

示例:

点击查看代码
import requests
#url
url='https://www.baidu.com/'
response=requests.get(url=url)
response.encoding='uft-8'
page_text=response.text
with open("./爬虫/baidu.html",'w',encoding='utf-8') as fp:
    fp.write(page_text)

实战巩固:

1.爬取搜狗指定词条的对应搜索结果

点击查看代码
import requests


if __name__==  "__main__": 
    keyword=input('enter a key word:')

#UA伪装:将爬虫程序伪装为浏览器客户端身份进行访问请求。(用于解决服务器端检测用户身份标识的问题)
# UA:user-agent:请求客户端的身份标识
    headers={
        'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.104 Safari/537.36'
    }
    params={
        'query':keyword
    }
    url='https://www.sogou.com/web'
    response=requests.get(url=url,params=params,headers=headers)
    page_text=response.text
    filename= './爬虫/day1/'+keyword+'.html'
    with open (filename,'w',encoding='utf-8') as fp:
        fp.write(page_text)
    print('数据爬取成功!')

2.爬取百度翻译

点击查看代码
import  requests
import json


##局部页面刷新:ajax请求,当页面刷新的时候,只更新局部的数据。ajax请求发售和接收成功之后,对局部的数据进行刷新。
# Ajax捕获:F12-网络-Fetch/xhr ,通过查看xhr类型data数据可以得到对应的Ajax响应数据。
# Ajax请求是一种post请求(携带了参数),响应数据为一组json数据
if __name__ == "__main__":
    post_url="https://fanyi.baidu.com/sug"
    data={
        "kw":"dog"
    }
    headers={
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39'
    }
    response=requests.post(url=post_url,data=data,headers=headers)
    #获取响应数据:json()方法返回的是obj(如果确认响应数据是json类型,才使用json()方法返回)
    page_json=response.json()
    # print(page_json)
    fp=open('./爬虫/day1/dog.json','w',encoding='utf-8')
    json.dump(page_json,fp=fp,ensure_ascii=False)
    print("数据爬取成功!")

    

3.爬取豆瓣电影

点击查看代码
import json
import requests

if __name__ == "__main__":

    #指定ajax-get请求的url
    url = 'https://movie.douban.com/j/chart/top_list'

    #定制请求头信息,相关的头信息必须封装在字典结构中
    headers = {
        #定制请求头中的User-Agent参数,当然也可以定制请求头中其他的参数
        'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39',
    }

    #定制get请求携带的参数
    param = {
        'type':'24',
        'interval_id':'100:90',
        'action':'',
        'start':'0',
        'limit':'20'
    }
    #发起get请求,获取响应对象
    response = requests.get(url=url,headers=headers,params=param)

    #获取响应内容:响应内容为json串
    list_data=response.json()

    fp=open('./爬虫/day1/豆瓣.json','w',encoding='utf-8')
    json.dump(list_data,fp=fp,ensure_ascii=False)

4.爬取肯德基餐厅查询

点击查看代码
import requests

if __name__ =="__main__":
    url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx'
    
    headers={
        "User-Agent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/100.0.1185.39'
    }

    param={
        'op':'keyword',
    }

    data={
        'cname': '上海',
        'pid':'',
        'keyword': '上海',
        'pageIndex': '1',
        'pageSize': '10',
    }

    response=requests.post(url=url,params=param,headers=headers,data=data)
    file_text=response.text
    with open('./爬虫/day1/肯德基.txt','w',encoding='utf-8') as fp:
        fp.write(file_text)
    print('成功寫入!')

5.爬取国家药品监管管理总局数据(教程已经无法完成)



这篇关于python爬虫-requests模块(路飞学城)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程