Python爬虫——Requests库简单入门

  • 相比url,url2库来说,Requests代码量少了很多,比较方便。

GET请求:

import requests
date = {'key':'value'}
r = requests.get(url,params=date) #params地内容一般是网址后面`?`后面地参数,比如搜索内容之类的~

得到一个Response对象,用r.content得到二进制文件,r.text得到文本文件,r.headers得到响应头。
除此之外还有很多可选参数,比如timeout设置超时;proxies设置代理。

POST请求:

import requests
postdate = {'key':'value'}
r = requests.post(url,date = postdate)

爬取一般界面的框架:

#获取HTML信息
def GetHtml(url):
    try:
        kv = {'user-agent': 'Mozilla/5.0'}  
        r = requests.get(url, timeout=5, headers = kv)
        r.raise_for_status()
        r.encoding = r.apparent_encoding
        return r.text    #看情况要返回什么。
    except:
        print('爬取失败')

Cookies

1.自定义Cookie值发送出去:

headers = dict(...)
cookies = dict(…)
r = requests.get(url, headers = headers, cookies = cookies)

2.自动处理Cookies的方式:Session

  • 在登陆中用Session函数处理Cookie的方式很常用。
    详解见:https://www.cnblogs.com/zhaof/p/7211253.html
    认证的机制。每当我们使用一款浏览器访问一个登陆页面的时候,一旦我们通过了认证。服务器端就会发送一组随机唯一的字符串(假设是123abc)到浏览器端,这个被存储在浏览端的东西就叫cookie。而服务器端也会自己存储一下用户当前的状态,比如login=true,username=hahaha之类的用户信息。
  • Cookies —— 用r.cookies() 可以获得cookies ,再把cookies 作为参数传入网站即可。但是面对较复杂的网站一般它都会调整cookies,可以用requests的session函数。cookie的工作原理是:由服务器产生内容,浏览器收到请求后保存在本地;当浏览器再次访问时,浏览器会自动带上cookie,这样服务器就能通过cookie的内容来判断这个是“谁”了。
  • session = requests.Session() —— Session(会话)对象可以持续跟踪会话信息,像cookie,header甚至一些HTTP协议的信息,比如HTTPAdapter。
  • Session的应用:
data = {'username':un,
        'password':pw,
        }
session = requests.Session()
#POST需要找到action触发的网页,而不是原来网页。
res = session.post(url+'/action.php?act=Login',data = data,headers = my_header)
#到此完成登陆,session保留cookies等信息。
res2 = session.get(url)
# 后面都用创建的会话来操作。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容