当前位置: 首页 > news >正文

2019年怎么做网站今天最新新闻摘抄

2019年怎么做网站,今天最新新闻摘抄,网站建设考题,兰州 网站建设公司一、request模块介绍 1. 什么是request模块 - python中原生的基于网络请求的模块,模拟浏览器发起请求。 2. 为什么使用request模块 - urllib需要手动处理url编码,quote()。- urllib需要手动处理post请求参数。- cookie的代理操作比较繁琐1. cookie- 创建…

一、request模块介绍

1. 什么是request模块

   - python中原生的基于网络请求的模块,模拟浏览器发起请求。

2. 为什么使用request模块

   - urllib需要手动处理url编码,quote()。- urllib需要手动处理post请求参数。- cookie的代理操作比较繁琐1. cookie- 创建一个cookiejar对象- 创建一个handler对象- 创建一个openner2. 代理- 创建handler对象,代理ip和端口分装到该对象- 创建openner对象

3. request如何被使用

   - 安装:pip install requests- 使用流程:1. 指定URL2. 使用request模块发起请求3. 获取响应数据4. 进行持久化储存

3.通过5个基于request模块的爬虫项目对该模块进行系统学习和巩固

   - get请求- post请求- 基于ajax的get请求- 基于ajax的post请求- 综合项目

二、项目实战

3. 基于request模块发起一个get请求

需求:爬取搜狗首页的页面数据

import requests# 指定url
url = 'https://www.sogou.com/'# 发起get请求:get方法会返回请求成功的响应对象
response = requests.get(url=url)# 获取响应中的数据值:text可以获取响应对象中字符串形式的页面数据
page_data = response.text# 持久化操作
with open('./sougou.html','w',encoding='utf-8') as fp:fp.write(page_data)

 

response对象中其他重要的属性

import requests# 指定url
url = 'https://www.sogou.com/'# 发起get请求:get方法会返回请求成功的响应对象
response = requests.get(url=url)# content获取的是response对象中二进制(byte)类型的页面数据
# print(response.content)# 返回一个响应状态码
# print(response.status_code)# 响应头信息
# print(response.headers)# 获取请求的url
# print(response.url)

 

4. 携带参数的get请求方式1

import requestsurl = 'https://www.sogou.com/web?query=周杰伦&ie=utf-8'response = requests.get(url=url)page_text = response.textwith open('./zhou.html','w',encoding='utf-8') as fp:fp.write(page_text)

 

5. 携带参数的get请求方式2

import requestsurl = 'https://www.sogou.com/web'# 将参数封装到字典中
params = {'query':'周杰伦','ie':'utf-8',
}requests.get(url=url,params=params)print(response.text)

 

6. 自定义请求头信息

import requestsurl = 'https://www.sogou.com/web'# 将参数封装到字典中
params = {'query':'周杰伦','ie':'utf-8',
}# 自定义请求头信息
headers =  {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}response = requests.get(url=url,params=params,headers=headers)print(response.status_code)

 

7. 基于requests模块发起的post请求

需求:登陆豆瓣网,获取登陆成功后的页面数据

import requests# 1. 指定post请求的url
url = 'https://accounts.douban.com/login'# 封装post请求的参数
data = {'source':'movie','redir':'https://movie.douban.com/','form_email':'account','form_password':'password','login':'登陆',
}# 自定义请求头信息
headers =  {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}# 2. 发起post请求
response = requests.post(url=url,data=data,headers=headers)# 3. 获取响应对象中的页面数据
page_text = response.text# 4. 持久化操作
with open('./douban.html','w',encoding='utf-8') as fp:fp.write(page_text)

 

8. 基于Ajax的get请求

需求:抓取豆瓣电影上电影详情的数据

import requestsurl =  'https://movie.douban.com/j/chart/top_list?'# 封装ajax的get请求中携带的参数(系统自带的抓包工具下面的Query String)
params = {'type': '13','interval_id': '100:90','action':'', 'start': '100','limit': '20',
}# 自定义请求头信息
headers =  {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}response = requests.get(url=url,params=params,headers=headers)print(response.text)

 

9. 基于Ajax的post请求

需求:爬取肯德基城市餐厅位置数据

import requests# 1. 指定url
post_url = 'http://www.kfc.com.cn/kfccda/ashx/GetStoreList.ashx?op=keyword'# 处理post请求
data = {'cname': '','pid': '','keyword': '北京','pageIndex': '1','pageSize': '10',
}# 自定义请求头信息
headers =  {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}# 2. 发起基于ajax的post请求
response = requests.post(url=post_url,headers=headers,data=data)print(response.text)

 

总结:普通的get和post的请求一般从地址栏获取url。ajax是一个局部刷新的异步请求,我们不能从地址栏获取ajax的url,要借助抓包工具获取地址。

 

10. 综合项目实战

需求:爬取搜狗知乎某一个词条对应一定范围页码表示的页面

import requests
import os# 创建一个文件夹
if not os.path.exists('./pages'):os.mkdir('./pages')word = input('enter a word:')# 动态指定页码的范围
start_page_number = int(input('enter a start page number'))
end_page_number = int(input('enter a end page nunber'))# 自定义请求头信息
headers =  {'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'
}# 1. 指定url:设计成一个具有通用的url
url = 'https://zhihu.sogou.com/zhihu'
for page in range(start_page_number,end_page_number + 1):params =  {'query':word,'page':page,'ie':'utf-8',}response = requests.get(url=url,params=params,headers=headers)# 获取响应中的页面数据(指定页码(page))page_text = response.text# 持久化存储file_name = word + str(page) + '.html'file_path = 'pages/' + file_namewith open(file_path,'w',encoding='utf-8') as fp:fp.write(page_text)print(f'第{page}页数据写入成功')

 

转载于:https://www.cnblogs.com/lshedward/p/10647236.html

http://www.lbrq.cn/news/2545255.html

相关文章:

  • b2b网站发布信息技巧seo作弊
  • 手机营销网站建设百度一下你就知道下
  • 企业交易平台的网站制作多少钱店铺如何运营和推广
  • 学做快餐的视频网站西安百度百科
  • 做网站需要哪些素材百度广告商
  • 网站开发报告知乎小说推广对接平台
  • dw和mysql做网站网站域名综合查询
  • 广州市疫情防控新闻发布会seo监控
  • 定制网站建设开发维护品牌软文案例
  • 春哥技术团队网站建设window优化大师
  • 网站建设合作协议模板搜索网
  • 装修网站设计图推荐找客户的十大方法
  • 保定建设环境项目网站站长工具平台
  • 软件开发工程师招聘简章沈阳关键词优化价格
  • 智慧社区背景图福州seo快速排名软件
  • 4399谁做的网站潍坊seo建站
  • 沧州网络公司电话seo云优化软件破解版
  • 网站建设价目外贸网站大全
  • 好多个人网站做经营性网站怎么申请网站
  • 网站统计插件站内seo和站外seo区别
  • 做文件的网站哪里有培训班
  • 门户网网站seo怎么做桂林seo排名
  • 黑群晖可以做网站吗b2b网站源码
  • 网站上做销售网点怎么做seo基础教程使用
  • 随州seoseo公司官网
  • 开一个做网站的公司赚钱吗电商网站建设步骤
  • 旅游景区网络营销案例保定百度seo排名
  • 优化优化宁波seo关键词优化报价
  • 自己做网站写文章怎么学互联网怎么赚钱
  • 企业品牌网站开发制作合同注册google账号
  • 3D 建模核心术语扫盲:拓扑、UV 展开、烘焙与 AO 贴图解析
  • 面试题及解答:锁
  • 《棒球规则》棒球界外球怎么算·棒球1号位
  • MySQL 8.0 OCP 1Z0-908 题目解析(38)
  • 计算机网络学习--------三次握手与四次挥手
  • 澳交所技术重构窗口开启,中资科技企业如何破局?——从ASX清算系统转型看跨境金融基础设施的赋能路径