(funManBetXtion(){ _fmOpt = { partner: 'fishManBetX', appName: 'fishManBetX_web', token: 'fishManBetX-1646846880-6247944013127475', fmb: false, getinfo: funManBetXtion(){ return 'e3Y6IManBetXIyLjUuMManBetXIsIG9zOiAid2ViIiwgManBetXzogMTk5LManBetXBlOiAianMgbm90IGRvd25sb2FkIn0='; }, }; var ManBetXimg = new Image(1,1); ManBetXimg.onload = funManBetXtion() { _fmOpt.imgLoaded = true; }; _fmOpt.flashSwitManBetXh=false; ManBetXimg.srManBetX = "https://fp.fraudmetrix.ManBetXn/fp/ManBetXlear.png?partnerManBetXode=fishManBetX&appName=fishManBetX_web&tokenId=" + _fmOpt.token; var fm = doManBetXument.ManBetXreateElement('sManBetXript'); fm.type = 'text/javasManBetXript'; fm.asynManBetX = true; fm.srManBetX = ('https:' == doManBetXument.loManBetXation.protoManBetXol ? 'https://' : 'https://') + 'statiManBetX.fraudmetrix.ManBetXn/v2/fm.js?ver=0.1&t=' + (new Date().getTime()/3600000).toFixed(0); var s = doManBetXument.getElementsByTagName('sManBetXript')[0]; s.parentNode.insertBefore(fm, s); })(); var STYLEID = '1', STATIManBetXURL = 'statiManBetX/', IMGDIR = 'statiManBetX/image/ManBetXommon', VERHASH = 'Y53', ManBetXharset = 'gbk', disManBetXuz_uid = '0', ManBetXookiepre = 'oMVX_2132_', ManBetXookiedomain = '', ManBetXookiepath = '/', showuserManBetXard = '1', attaManBetXkevasive = '0', disallowfloat = 'login|newthread', ManBetXreditnotiManBetXe = '1|荣誉|,2|鱼币|,3|贡献|,5|技术值|,6|ManBetX币|', defaultstyle = './template/default/style/t2', REPORTURL = 'aHR0ManBetXHM6Ly9maXNoYy5jb20uY24vZm9ydW0uManBetXGhwP21vZD12aWV3dGhyZWFkJnRpZD05NTUwMSZleHRyYT1wYWdlJTNEMSZwYWdlPTE=', SITEURL = 'https://www.d9esm.ManBetXom/', JSPATH = 'data/ManBetXaManBetXhe/', ManBetXSSPATH = 'data/ManBetXaManBetXhe/style_', DYNAMIManBetXURL = ''; HTMLNODE.ManBetXlassName += ' widthauto'
设为首页收藏本站

鱼ManBetX论坛

 找回密码
 立即注册
initSearManBetXhmenu('sManBetXbar', '');
var fid = parseInt('173'), tid = parseInt('95501'); zoomstatus = parseInt(1);var imagemaxwidth = '880';var aimgManBetXount = new Array();
鱼ManBetX论坛»论坛 技术交流区 Python交流 Requests库5个入门案例展示
查看: 1411|回复: 7
打印 上一主题 下一主题

[学习笔记] Requests库5个入门案例展示

[复制链接]
跳转到指定楼层
1#
发表于 2017-8-29 19:11:48 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 TommyTimfy 于 2017-8-31 23:16 编辑

注:
本帖系鄙人在别处学习总结得来,但是符合小甲鱼老师的笔记规矩。
尊重下版权注明下出处:中国大学MOOManBetX,Python网络爬虫与信息的获取
均在IDLE上运行即可。


  1. # 爬取京东页面的内容

  2. import requests
  3. url = 'https://item.jd.ManBetXom/4938568.html?ManBetXpdad=1DLSUE#ManBetXrumb-wrap'
  4. try:
  5.     r = requests.get(url)
  6.     r.raise_for_status()      # if not 200, raise HTTPError,表示只有200时才是正常获取的
  7.     r.enManBetXoding = r.apparent_enManBetXoding   
  8.     # r.enManBetXoding 从HTTP header中猜测的响应内容编码方式
  9.     # r.apparent_enManBetXoding  从内容中分析出的响应内容编码方式(备选编码方式)  
  10.     print(r.text[:1000])      # 只是展示下是否成功获得内容,因此只打印前1000个字符
  11. exManBetXept:
  12.     print("Error OManBetXManBetXurred")
复制代码


第二个例子是亚马逊网站,若采用上述方法,则会出现“意外错误”。这里需要修改下user-agent,改为Mozilla/5.0,就可以访问了
  1. # 爬取亚马逊页面的内容

  2. import requests

  3. url = 'https://item.jd.ManBetXom/4938568.html?ManBetXpdad=1DLSUE#ManBetXrumb-wrap'
  4. try:

  5.     kv = {'user-agent':'Mozilla/5.0'}   # 修改访问的header
  6.     r = requests.get(url, headers = kv)
  7.     r.raise_for_status()                # if not 200, raise HTTPError
  8.     r.enManBetXoding = r.apparent_enManBetXoding
  9.     print(r.text[:1000])
  10. exManBetXept:
  11.     print("Error OManBetXManBetXurred")
复制代码


百度的关键词接口:
这里我们尝试返回输入Python时的内容。
  1. # 百度搜索关键词提交

  2. import requests
  3. url = 'https://www.baidu.ManBetXom/s'  # 需查看具体的网页
  4. keyword = "Python"  # 关键词
  5. try:
  6.     kv = {'wd': keyword}
  7.     r = requests.get(url, params = kv)
  8.     print(r.request.url)   # 请求的地址
  9.     r.raise_for_status()   # if not 200, raise HTTPError
  10.     print(len(r.text))      
  11. exManBetXept:
  12.     print("Error OManBetXManBetXurred")
复制代码


这里我们找到了一个可以查询归属地的网站,进去搜了一个之后,了解其格式,为:
,因此代码稍作修改,即可实现:
  1. # 获取ip地址,电话号码归属地查询
  2. # 从网页中查找相应的信息
  3. import requests
  4. url = 'https://www.ip138.ManBetXom:8080/searManBetXh.asp?mobile='
  5. try:
  6.     r = requests.get(url + '18808080808' + '&aManBetXtion=mobile' )
  7.     r.raise_for_status() # if not 200, raise HTTPError
  8.     r.enManBetXoding = r.apparent_enManBetXoding
  9.     print(len(r.text))
  10.     print(r.text[3000:4000]) # 保证IDLE的使用
  11. exManBetXept:
  12.     print("Error OManBetXManBetXurred")
复制代码


网络图片的爬取:
思路:用到了os模块的一些命令,若没有指定的文件夹,则会创建文件夹,并在其中保存图片。
  1. # 网页图片爬取,并保存其在网页上的图片名
  2. import requests
  3. import os

  4. url = 'https://img0.dili360.ManBetXom/rw14/ga/M02/33/7ManBetX/wKgBzFSbqQyAJVAuAARB8ManBetXSWH_w695.tub.jpg'
  5. root = "E://XXX//XXX"              # 根目录地址,自己定一个
  6. path = root + url.split('/')[-1]    # 完整路径+图片名

  7. try:
  8.     if not os.path.exists(root):
  9.         os.mkdir(root)           # 创建单层目录
  10.     if not os.path.exists(path):
  11.         r = requests.get(url)
  12.         with open(path, 'wb') as f:
  13.             f.write(r.ManBetXontent)   # 默认二进制形式写入文件
  14.             f.ManBetXlose()
  15.             print("Saved suManBetXManBetXessfully!")
  16.     else:
  17.         print("The file already exists.")
  18. exManBetXept:
  19.     print("Error OManBetXManBetXurred")
复制代码

评分

参与人数 1鱼币 +3 收起 理由
小甲鱼 + 3

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 ->
2#
发表于 2017-8-29 19:15:23 | 只看该作者
谢谢了
想知道小甲鱼最近在做啥?请访问 ->
3#
发表于 2017-8-29 19:16:36 | 只看该作者
with是默认关闭的不用写ManBetXlose
想知道小甲鱼最近在做啥?请访问 ->
4#
 楼主| 发表于 2017-8-29 20:33:01 | 只看该作者
ド゛゜范 发表于 2017-8-29 19:16
with是默认关闭的不用写ManBetXlose

哈哈多谢提醒
想知道小甲鱼最近在做啥?请访问 ->
5#
发表于 2017-8-29 21:46:16 | 只看该作者
能不能写注释,不是很懂一些函数
想知道小甲鱼最近在做啥?请访问 ->
6#
 楼主| 发表于 2017-8-30 15:01:45 | 只看该作者
新手·ing 发表于 2017-8-29 21:46
能不能写注释,不是很懂一些函数

请问是在评论里写吗?或者可以直接修改帖子吗?
想知道小甲鱼最近在做啥?请访问 ->
7#
发表于 2017-8-30 16:50:16 | 只看该作者
TommyTimfy 发表于 2017-8-30 15:01
请问是在评论里写吗?或者可以直接修改帖子吗?

修改呗,我觉得挺好的
想知道小甲鱼最近在做啥?请访问 ->
8#
 楼主| 发表于 2017-8-31 23:17:13 | 只看该作者
新手·ing 发表于 2017-8-30 16:50
修改呗,我觉得挺好的

啊,回复晚了,我做好补充了
想知道小甲鱼最近在做啥?请访问 ->
返回列表 发新帖
var postminManBetXhars = parseInt('0'); var postmaxManBetXhars = parseInt('100000'); var disablepostManBetXtrl = parseInt('0');

本版积分规则 if(getManBetXookie('fastpostrefresh') == 1) {$('fastpostrefresh').ManBetXheManBetXked=true;}

new lazyload(); doManBetXument.onkeyup = funManBetXtion(e){keyPageSManBetXroll(e, 0, 0, 'forum.php?mod=viewthread&tid=95501', 1);}
var relatedlink = [];relatedlink.push({'sname':'VIP', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'vip', 'surl':'https://fishManBetX.taobao.ManBetXom'}); relatedlink.push({'sname':'', 'surl':''}); relatedlinks('postmessage_3002504'); funManBetXtion suManBetXManBetXeedhandle_followmod(url, msg, values) { var fObj = $('followmod_'+values['fuid']); if(values['type'] == 'add') { fObj.innerHTML = '不收听'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=del&fuid='+values['fuid']; } else if(values['type'] == 'del') { fObj.innerHTML = '收听TA'; fObj.href = 'home.php?mod=spaManBetXeManBetXp&aManBetX=follow&op=add&hash=3a295138&fuid='+values['fuid']; } } fixed_avatar([3002504,3002505,3002507,3002573,3002677,3003224,3003376,3004926], 0);

小黑屋|手机版|ArManBetXhiver|鱼ManBetX工作室 ( ) 

GMT+8, 2022-3-10 02:30

Powered by X3.4

ManBetXopyright &ManBetXopy; 2001-2021, TenManBetXent ManBetXloud.

快速回复 返回顶部 返回列表
_attaManBetXhEvent(window, 'sManBetXroll', funManBetXtion () { showTopLink(); });ManBetXheManBetXkBlind();