python网络爬虫五

实战三—向搜索引擎提交搜索请求


  • 关键点:利用搜索引擎提供的接口

  • 百度的接口:wd=“要搜索的内容”
  • 360的接口:q=“要搜索的内容”
  • 所以我们只要把我们提交给服务器的url修改成对应的格式,就可以向搜索引擎提交关键字
  • 修改url,第一个想到的就是params参数。只须构造键值对,提交给params即可
  • 键值对前面的代表搜索引擎前面的接口标识,键值对后面的代表我们要搜索的内容。
>>> import requests
>>> kv = {‘wd‘:‘python‘}
>>> r = requests.get("http://www.baidu.com/s",params=kv)
>>> r.status_code
200
  • response对象中的request对象来查看我们提交给服务器的URL链接
>>> r.request.url
‘http://www.baidu.com/s?wd=python‘
  • 给出完整代码:
import requests
kv = {‘wd‘:‘python‘}
url = "http://www.baidu.com/s"

try:
    r = requests.get(url,params = kv)
    print(r.request.url)
    r.raise_for_status()
    print(r.text[:2000])
except:
    print("爬取失败")

实战四—图片的爬取和存储



  • 图片链接的格式,url+xxxx.jpg
  • 给出图片的地址,爬取下来后存放到本机的某一个位置。
>>> import requests
>>> path = "/Users/hyliu/Desktop/picture.jpg"
>>> url = "https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=3acf58502f7f9e2f6438155a7e598241/7aec54e736d12f2e227c44d647c2d5628535680f.jpg"
>>> r = requests.get(url)
>>> r.status_code
200
  • 现在r中已经包含了我们想要的图片,接下来要做的事情就是把图片变成文件存放到本机。
  • 我们知道图片是一个二进制格式,用如下代码来实现:
>>> path = "/Users/hyliu/Desktop/picture.jpg"
>>> with open(path,‘wb‘) as f:
    f.write(r.content)

53658
>>> 
  • 这段代码的含义就是,我们先打开一个文件picture.jpg,并定义为一个文件标识符f。然后我们将返回的内容写入到这个文件中。
  • r.content表示返回内容的二进制格式,所以我们将r.content写入到图片文件中。
  • 最后我们将文件关闭
>>> f.close()
>>> 
  • 现在我们去查看我们爬取的结果(是不是很帅!)

  • 给出完成代码(用图片原本的名称来命名):
import requests
import os

url = "https://gss3.bdstatic.com/-Po3dSag_xI4khGkpoWK1HF6hhy/baike/c0%3Dbaike80%2C5%2C5%2C80%2C26/sign=3acf58502f7f9e2f6438155a7e598241/7aec54e736d12f2e227c44d647c2d5628535680f.jpg"
root = "/Users/hyliu/Desktop/"
path = root + url.split(‘/‘)[-1] #获取URL最后一个“/”后的内容,实际上就是获取图片原本的名字
try:
    if not os.path.exists(root):    #目录不存在则创建
        os.mkdir(root)
    if not os.path.exists(path):    #判断是否存在重名文件
        r = requests.get(url)
        #print(r.status_code)
        r.raise_for_status()
        with open (path,‘wb‘) as f:
            f.write(r.content)
            f.close()
            print("文件保存成功!")
    else:
        print("文件已存在")
except:
    print("爬取失败")

实战五—查询IP地址的归属地


  • 借助IP138网站查询:

  • 思路就是像百度和360那样,找到IP138网站的接口信息。

>>> import requests
>>> url = "http://m.ip138.com/ip.asp"
>>> kv = {‘ip‘:‘218.106.145.15‘}
>>> r = requests.get(url,params = kv)
>>> r.status_code
200
>>> r.text[-500:]
‘submit" value="查询" class="form-btn" />\r\n\t\t\t\t\t</form>\r\n\t\t\t\t</div>\r\n\t\t\t\t<div class="query-hd">ip138.com IP查询(搜索IP地址的地理位置)</div>\r\n\t\t\t\t<h1 class="query">您查询的IP:218.106.145.15</h1><p class="result">本站主数据:福建省福州市  联通</p><p class="result">参考数据一:福建省福州市 联通</p>\r\n\r\n\t\t\t</div>\r\n\t\t</div>\r\n\r\n\t\t<div class="footer">\r\n\t\t\t<a href="http://www.miitbeian.gov.cn/" rel="nofollow" target="_blank">沪ICP备10013467号-1</a>\r\n\t\t</div>\r\n\t</div>\r\n\r\n\t<script type="text/javascript" src="/script/common.js"></script></body>\r\n</html>\r\n‘
>>>
  • 给出完整代码:
import requests
kv = {‘ip‘:‘218.106.145.15‘}
url = "http://m.ip138.com/ip.asp"
try:
    r = requests.get(url,params = kv)
    r.raise_for_status()
    print(r.text[-500:])
except:
    print("爬取失败")

URL is API

原文地址:https://www.cnblogs.com/031602523liu/p/9824799.html

时间: 2024-10-08 20:08:25

python网络爬虫五的相关文章

Python网络爬虫笔记(五):下载、分析京东P20销售数据

(一)  分析网页 下载下面这个链接的销售数据 https://item.jd.com/6733026.html#comment 1.      翻页的时候,谷歌F12的Network页签可以看到下面的请求. 从Preview页签可以看出,这个请求是获取评论信息的 2.      对比第一页.第二页.第三页-请求URL的区别 可以发现 page=0.page=1,0和1指的应该是页数. 第一页的 request url:没有这个rid=0& . 第二.三页-的request url:多了这个ri

Python网络爬虫

http://blog.csdn.net/pi9nc/article/details/9734437 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些链接地址寻找下一个网页,这样一直循环下去,直到把这个网站所有的网页都抓取完为止. 如果把整个互联网当成一个网站,那么

[Python]网络爬虫(三):异常的处理和HTTP状态码的分类(转)

先来说一说HTTP的异常处理问题.当urlopen不能够处理一个response时,产生urlError.不过通常的Python APIs异常如ValueError,TypeError等也会同时产生.HTTPError是urlError的子类,通常在特定HTTP URLs中产生. 1.URLError通常,URLError在没有网络连接(没有路由到特定服务器),或者服务器不存在的情况下产生. 这种情况下,异常同样会带有"reason"属性,它是一个tuple(可以理解为不可变的数组),

Python]网络爬虫

Originated From: http://blog.csdn.net/pi9nc/article/details/9734437#comments [Python]网络爬虫(一):抓取网页的含义和URL基本构成 一.网络爬虫的定义 网络爬虫,即Web Spider,是一个很形象的名字. 把互联网比喻成一个蜘蛛网,那么Spider就是在网上爬来爬去的蜘蛛.网络蜘蛛是通过网页的链接地址来寻找网页的. 从网站某一个页面(通常是首页)开始,读取网页的内容,找到在网页中的其它链接地址, 然后通过这些

python网络爬虫学习资料

第一:Python爬虫学习系列教程(来源于某博主:http://cuiqingcai.com/1052.html) Python版本:2.7 整体目录: 一.爬虫入门 1. Python爬虫入门一之综述 2. Python爬虫入门二之爬虫基础了解 3. Python爬虫入门三之Urllib库的基本使用 4. Python爬虫入门四之Urllib库的高级用法 5. Python爬虫入门五之URLError异常处理 6. Python爬虫入门六之Cookie的使用 7. Python爬虫入门七之正则

python网络爬虫之cookie的使用方法汇总

在编写python网络爬虫时,除了要考虑到爬虫的异常处理问题,我们是否还会考虑到cookie的使用呢?在使用cookie时,有想过为什么要使用cookie吗?一起来看看吧. Cookie,指某些网站为了辨别用户身份.进行session跟踪而储存在用户本地终端上的数据(通常经过加密)比如说有些网站需要登录后才能访问某个页面,在登录之前,你想抓取某个页面内容是不允许的.那么我们可以利用Urllib2库保存我们登录的Cookie,然后再抓取其他页面就达到目的了. 在此之前呢,我们必须先介绍一个open

Python网络爬虫与信息提取(中国大学mooc)

目录 目录 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 目标获取淘宝搜索页面的信息 理解淘宝的搜索接口翻页的处理 技术路线requests-refootnote 代码如下 股票数据定向爬虫 列表内容 爬取网站原则 代码如下 代码优化 Python网络爬虫与信息提取 淘宝商品比价定向爬虫 股票数据定向爬虫 1. 淘宝商品比价定向爬虫 功能描述 目标:获取淘宝搜索页面的信息 理解:淘宝的搜索接口翻页的处理 技术路线:requests-re[^footnote]. 代码如下: #CrowTa

2017.07.28 Python网络爬虫之爬虫实战 今日影视2 获取JS加载的数据

1.动态网页指几种可能: 1)需要用户交互,如常见的登录操作: 2)网页通过js / AJAX动态生成,如一个html里有<div id="test"></div>,通过JS生成<divid="test"><span>aaa</span></div>: 3)点击输入关键字后进行查询,而浏览器url地址不变 2.想用Python获取网站中JavaScript返回的数据,目前有两种方法: 第一种方法

[Python]网络爬虫(四):Opener与Handler的介绍和实例应用(转)

在开始后面的内容之前,先来解释一下urllib2中的两个个方法:info and geturl urlopen返回的应答对象response(或者HTTPError实例)有两个很有用的方法info()和geturl() 1.geturl(): 这个返回获取的真实的URL,这个很有用,因为urlopen(或者opener对象使用的)或许会有重定向.获取的URL或许跟请求URL不同. 以人人中的一个超级链接为例, 我们建一个urllib2_test10.py来比较一下原始URL和重定向的链接: [p