热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python爬虫之requests模块

一.登录事例a.查找汽车之家新闻标题链接图片写入本地importrequestsfrombs4importBeautifulSoupimportuuidresponsereq

一. 登录事例

a. 查找汽车之家新闻 标题 链接 图片写入本地

用到BeautifulSoup模块寻找标签

b. 抽屉点赞 获取页面和登录都会获取gpsd  点赞会使用获取页面的gpsd 而不是登录的gpsd

import requests

#先获取页面

r1
= requests.get('http://dig.chouti.com/')
r1_COOKIEs
= r1.COOKIEs.get_dict()

#登录
post_dict
= {
"phone":"8615131255089",
"password":"woshiniba",
"oneMonth":"1"
}

r2
= requests.post(
url
="http://dig.chouti.com/login",
data
= post_dict,
COOKIEs
=r1_COOKIEs
)

r2_COOKIEs
= r2.COOKIEs.get_dict()

# 访问其他页面
r3
= requests.post(
url
="http://dig.chouti.com/link/vote?linksId=13921091",
COOKIEs
={'gpsd':r1_COOKIEs['gpsd']}
)
print(r3.text)
抽屉网页面的(gpsd)

c. 登录githup 携带COOKIE登录

import requests
from bs4 import BeautifulSoup

r1
= requests.get('https://github.com/login')
s1
= BeautifulSoup(r1.text,'html.parser')

# 获取csrf_token
token
= s1.find(name='input',attrs={'name':"authenticity_token"}).get('value')
r1_COOKIE_dict
= r1.COOKIEs.get_dict()

# 将用户名 密码 token 发送到服务端 post
r2
= requests.post(
'https://github.com/session',
data
={
'commit':'Sign in',
'utf8':'',
'authenticity_token':token,
'login':'317828332@qq.com',
'password':'alex3714'
},
COOKIEs
=r1_COOKIE_dict
)

# 获取登录后COOKIE
r2_COOKIE_dict
= r2.COOKIEs.get_dict()

#合并登录前的COOKIE和登录后的COOKIE
COOKIE_dict
= {}
COOKIE_dict.update(r1_COOKIE_dict)
COOKIE_dict.update(r2_COOKIE_dict)




r3
= requests.get(
url
='https://github.com/settings/emails',
COOKIEs
=COOKIE_dict
)

print(r3.text)
View Code

二.  requests 参数 

- method:  提交方式
- url: 提交地址
- params: 在URL中传递的参数,GET
- data: 在请求体里传递的数据
- json 在请求体里传递的数据
- headers 请求头
- COOKIEs COOKIEs
- files 上传文件
- auth 基本认知(headers中加入加密的用户名和密码)
- timeout 请求和响应的超市时间
- allow_redirects 是否允许重定向
- proxies 代理
- verify 是否忽略证书
- cert 证书文件
- stream 村长下大片
- session: 用于保存客户端历史访问信息

a. file 发送文件

import requests

requests.post(
url
='xxx',
filter
={
'name1': open('a.txt','rb'), #名称对应的文件对象
'name2': ('bbb.txt',open('b.txt','rb')) #表示上传到服务端的名称为 bbb.txt
}
)
View Code

b. auth 认证

#配置路由器访问192.168.0.1会弹出小弹窗,输入用户名,密码 点击登录不是form表单提交,是基本登录框,这种框会把输入的用户名和密码 经过加密放在请求头发送过去
import requests

requests.post(
url
='xxx',
filter
={
'name1': open('a.txt','rb'), #名称对应的文件对象
'name2': ('bbb.txt',open('b.txt','rb')) #表示上传到服务端的名称为 bbb.txt
}
)
View Code

c. stream 流

#如果服务器文件过大,循环下载

def param_stream():
ret
= requests.get('http://127.0.0.1:8000/test/', stream=True)
print(ret.content)
ret.close()

#
from contextlib import closing
# with closing(requests.
get('http://httpbin.org/get', stream=True)) as r:
# # 在此处理响应。
#
for i in r.iter_content():
# print(i)
View Code

d. session  和django不同  事例:简化抽屉点赞

    import requests

session
= requests.Session()

###
1、首先登陆任何页面,获取COOKIE

i1
= session.get(url="http://dig.chouti.com/help/service")

###
2、用户登陆,携带上一次的COOKIE,后台对COOKIE中的 gpsd 进行授权
i2
= session.post(
url
="http://dig.chouti.com/login",
data
={
'phone': "8615131255089",
'password': "xxxxxx",
'oneMonth': ""
}
)

i3
= session.post(
url
="http://dig.chouti.com/link/vote?linksId=8589623",
)
print(i3.text)
View Code

 


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 本文介绍了在Python3中如何使用选择文件对话框的格式打开和保存图片的方法。通过使用tkinter库中的filedialog模块的asksaveasfilename和askopenfilename函数,可以方便地选择要打开或保存的图片文件,并进行相关操作。具体的代码示例和操作步骤也被提供。 ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • 2022年的风口:你看不起的行业,真的很挣钱!
    本文介绍了2022年的风口,探讨了一份稳定的副业收入对于普通人增加收入的重要性,以及如何抓住风口来实现赚钱的目标。文章指出,拼命工作并不一定能让人有钱,而是需要顺应时代的方向。 ... [详细]
  • Python开源库和第三方包的常用框架及库
    本文介绍了Python开源库和第三方包中常用的框架和库,包括Django、CubicWeb等。同时还整理了GitHub中最受欢迎的15个Python开源框架,涵盖了事件I/O、OLAP、Web开发、高性能网络通信、测试和爬虫等领域。 ... [详细]
  • 图像因存在错误而无法显示 ... [详细]
  • JS实现一键分享功能
    本文介绍了如何使用JS实现一键分享功能,并提供了2019独角兽企业招聘Python工程师的标准。同时,给出了分享到QQ空间、新浪微博和人人网的链接。 ... [详细]
author-avatar
心若繁花花满地
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有