基本GET请求1. 最基本的GET请求可以直接用get方法

response = requests.get("http://www.baidu.com/")

2. 添加 headers 和 查询参数

如果想添加 headers,可以传入headers参数来增加请求头中的headers信息。如果要将参数放在url中传递,可以利用 params 参数。

kw = {'wd':'长城'}

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36"}

# params 接收一个字典或者字符串的查询参数,字典类型自动转换为url编码,不需要urlencode()

response = requests.get("http://www.baidu.com/s?", params = kw, headers = headers)

# 查看响应内容,response.text 返回的是Unicode格式的数据

print response.text

2. 传入data数据

对于 POST 请求来说,我们一般需要为它增加一些参数。那么最基本的传参方法可以利用 data 这个参数。

formdata = {

"type":"AUTO",

"i":"i love python",

"doctype":"json",

"xmlVersion":"1.8",

"keyfrom":"fanyi.web",

"ue":"UTF-8",

"action":"FY_BY_ENTER",

"typoResult":"true"

}

url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=null"

headers={ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"}

response = requests.post(url, data = formdata, headers = headers)

print response.text

# 如果是json文件可以直接显示

print response.json()

Cookies

response=requests.get('http://www.baidu.com/')

# 7. 返回CookieJar对象:

cookiejar=response.cookies

print(cookiejar)

# 8. 将CookieJar转为字典:

cookiedict=requests.utils.dict_from_cookiejar(cookiejar)

print(cookiedict)

Sission

在 requests 里,session对象是一个非常常用的对象,这个对象代表一次用户会话:从客户端浏览器连接服务器开始,到客户端浏览器与服务器断开。

会话能让我们在跨请求时候保持某些参数,比如在同一个 Session 实例发出的所有请求之间保持 cookie 。

# 1. 创建session对象,可以保存Cookie值

ssion = requests.session()

# 2. 处理 headers

headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"}

# 3. 需要登录的用户名和密码

data = {"email":"12922215**", "password":"huang***521"}

# 4. 发送附带用户名和密码的请求,并获取登录后的Cookie值,保存在ssion里

ssion.post("http://www.renren.com/PLogin.do", data = data)

# 5. ssion包含用户登录后的Cookie值,可以直接访问那些登录后才可以访问的页面

response = ssion.get("http://www.renren.com/410043129/profile")

# 6. 打印响应内容

soup=BeautifulSoup(response.text,'html.parser')

#print(soup)

for ss in soup.find_all('span',class_='stage-name'):

print(ss.text)

获取所有课程信息

先访问所有课程页面,把html代码拿到,实际上就是拿到一个很长的文本,文本内容就是网页的html代码

分析html代码,找到我们需要获取信息的html特征

解析html代码,根据html特征,从里面抠出来课程的名称

打印出所有课程的名称

from selenium import webdriver

import requests

from bs4 import BeautifulSoup

'''首先要安装requests库'''

url='http://www.itest.info/courses'

#获取被抓取页面的HTML代码,并使用html.parser来实例化BeautiSoup,属于固定套路

soup=BeautifulSoup(requests.get(url).text,'html.parser')

#遍历页面上所有的h4

for course in soup.find_all('h4'):

print(course.text)

我们要找到的是所有class=item_hot_topic_title的span下面的a元素

from selenium import webdriver

import requests

from bs4 import BeautifulSoup

'''首先要安装requests库'''

url='https://www.v2ex.com/'

#获取被抓取页面的HTML代码,并使用html.parser来实例化BeautiSoup,属于固定套路

soup=BeautifulSoup(requests.get(url).text,'html.parser')

for span in soup.find_all('span',class_='item_hot_topic_title'):

print(span.find('a').text,span.find('a')['href'])

相关知识点

soup.find('span', class_='item_hot_topic_title') 这个是只能找到第一个span标签 样式为 class='item_hot_topic_title',就算后面还有匹配的也不去获取

span.find_all('span', class_='item_hot_topic_title') 这个就能找到页面上所有span标签 样式为 class='item_hot_topic_title'

python爬虫实例100例-Python爬虫 实例相关推荐

  1. python菜鸟教程100例-Python 基础教程 | 菜鸟教程

    Python 基础教程 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言. Python由Guido van Rossum于1989年底发明,第一个公开发行版发行于1991年. 像P ...

  2. python爬虫实例100例-Python 练习实例1

    #16 zavier 126***0796@qq.com 49 使用列表形式,并计算总结: #!/usr/bin/python # -*- coding: UTF-8 -*- # 原答案没有指出三位数 ...

  3. python爬虫实例100例-python 爬虫实例

    #爬取图片 importtimeimportrequestsfrom bs4 importBeautifulSoupclassAaa(): headers={"Cookie": & ...

  4. python办公实例100例-Python 100例(上)

    如果你已经把基础看完,可以尝试一下看看以下例子了,如果不会做也不要紧,你要尝试手动把所有的代码都敲一边.别嫌麻烦,因为都是从麻烦到简单的. 实例1: 题目:有1.2.3.4个数字,能组成多少个相互不同 ...

  5. python菜鸟教程100例-Python 练习实例1

    #16 zavier 126***0796@qq.com 49 使用列表形式,并计算总结: #!/usr/bin/python # -*- coding: UTF-8 -*- # 原答案没有指出三位数 ...

  6. python趣味编程100例-Python趣味编程与精彩实例,码高少儿编程 编

    1 Python基础知识OWa少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 1.1 简介OWa少儿编程网-Scratch_Python_教程_免费儿童编程学习平台 1.2 诞生 ...

  7. python菜鸟教程100例-Python 练习实例4

    #19 ym 853***877@qq.com 10 参考解法: #!/usr/bin/python # -*- coding: UTF-8 -*- year=int(raw_input(" ...

  8. python菜鸟教程100例-Python 练习实例14

    #15 小天儿 102***9045@qq.com 14 使用 Python3 的参考解法: #!/usr/bin/python3 x = int(input("是否进入循环?是:1, 否: ...

  9. python趣味编程100例-Python游戏趣味编程

    书名:Python游戏趣味编程 定价:69.0 ISBN:9787115538246 作者:童晶 版次:第1版 出版时间:2020-07 内容提要: 本书把趣味游戏开发应用于Python编程教学,通过 ...

最新文章

  1. 数组-在Shell脚本中的基本使用介绍
  2. MASM6.1使用方法(适合初学者)
  3. 使用坚果云同步SVN服务器数据
  4. 数据结构排序算法实验报告_[数据结构与算法系列]排序算法(二)
  5. 关于一些对location认识的误区(转)
  6. 蚂蚁金服大规模分布式事务实践和开源历程
  7. mybatis 原理_Mybatis工作流程及其原理与解析
  8. .NET斗鱼直播弹幕客户端(上)
  9. linux安装mysql(shell一键安装)
  10. 免费解决vcruntime140.dll文件缺失 - 资源篇
  11. 学习STP的一些总结
  12. 29岁女程序员感慨:硕士学历,脱单比找工作买房还难,有同感么?
  13. 分布式架构高可用与高并发那些在工作中常用到的那些变态应用
  14. 浅析计算机软件可靠性设计
  15. [新整理] CAD高级模拟考题
  16. 国外src(漏洞挖掘平台)
  17. VSCode画 UML 图
  18. 腾讯与360之争随笔 (12月21日,最后一次更新)
  19. 快速找回WINDOWS 7快速启动栏
  20. varchar 和 char 的区别

热门文章

  1. Numpy知识点:np.expand_dims()np.argmax()
  2. VS错误之error LNK2019: 无法解析的外部符号
  3. man命令的使用方法
  4. Nginx教程负载均衡机制
  5. Unity3D DoTween插件 的基本用法
  6. 周末计划-20171028
  7. jsp电子商务 购物车实现之一 设计篇
  8. 关于DButil的使用几点思考
  9. CodeForces Round #290 Div.2
  10. CodeForces - 1610B Kalindrome Array