爬虫(二)requests实例

1.京东商品页面爬虫  

命令行内输入:

>>> import requests
>>> r=requests.get("https://item.jd.com/12522197.html")
>>> r.status_code
200
>>> r.encoding
'gbk'
>>> r.text[:1000]
'<!DOCTYPE HTML>\n<html lang="zh-CN">\n<head>\n    <!--new book-->\n    <meta http-equiv="Content-Type" content="text/html; charset=gbk" />\n    <title>《统计学习方法(第2版)》(李航)【摘要 书评 试读】- 京东图书</title>\n    <meta name="keywords" content="统计学习方法(第2版),,清华大学出版社,9787302517276,,在线购买,折扣,打折"/>\n    <meta name="description" content="京东JD.COM图书频道为您提供《统计学习方法(第2版)》在线选购,本书作者:,出版社:清华大学出版社。买图书,到京东。网购图书,享受最低优惠折扣!" />\n    <meta name="format-detection" content="telephone=no">\n    <meta http-equiv="mobile-agent" content="format=xhtml; url=//item.m.jd.com/product/12522197.html">\n    <meta http-equiv="mobile-agent" content="format=html5; url=//item.m.jd.com/product/12522197.html">\n    <meta http-equiv="X-UA-Compatible" content="IE=Edge">\n    <link rel="canonical" href="//item.jd.com/12522197.html"/>\n        <link rel="dns-prefetch" href="//misc.360buyimg.com"/>\n    <link rel="dns-prefetch" href="//static.360buyimg.com"/>\n    <link rel="dns-prefetch" href="//img10.360buyimg.com"/>\n    <link rel="dns-prefetch" href="//img1'

代码:

import requests
url="https://item.jd.com/12522197.html"
try:
    r=requests.get(url)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[:1000])
except:
    print("爬取失败")

2.美国机票页面

import requests
url="https://www.americanairlines.cn/i18n/moresearch.jsp?locale=zh_CN"
try:
    kv={'user-agent':'Mozilla/5.0'}
    r=requests.get(url,headers=kv)
    r.raise_for_status()
    r.encoding=r.apparent_encoding
    print(r.text[1000:2000])
except:
    print("爬取失败")

注意Mozilla/5.0是以标准浏览器的身份去访问,如果status不是200则可以这么干。

3.百度/360搜索关键词提交

import requests
keyword="Python"
try:
    kv={'wd':keyword}
    r=requests.get("http://www.baidu.com/s",params=kv)
    print(r.request.url)
    r.raise_for_status()
    print(len(r.text))
except:
    print("爬取失败")

注:360则把上面的wd改为q即可。

4.IP地址归属地的自动查询

import requests
url="http://m.ip138.com/ip.asp?ip="
try:
    r=requests.get(url+'202.204.80.112')
    r.raise_for_status()    
    r.encoding=r.apparent_encoding
    print(r.text[-500:])
except:
    print("爬取失败")

输出结果为

value="查询" class="form-btn" />

					</form>

				</div>

				<div class="query-hd">ip138.com IP查询(搜索IP地址的地理位置)</div>

				<h1 class="query">您查询的IP:202.204.80.112</h1><p class="result">本站主数据:北京市海淀区 北京理工大学 教育网</p><p class="result">参考数据一:北京市 北京理工大学</p>



			</div>

		</div>



		<div class="footer">

			<a href="http://www.miitbeian.gov.cn/" rel="nofollow" target="_blank">沪ICP备10013467号-1</a>

		</div>

	</div>



	<script type="text/javascript" src="/script/common.js"></script></body>

</html>

5.网络图片的爬取和存储

import requests
import os
url="https://pic3.zhimg.com/v2-37c590b470295344bc82ead690f5c7ce_r.jpg"
root="D://picture//"
path=root+url.split('/')[-1]
try:
    if not os.path.exists(root):
        os.mkdir(root)
    if not os.path.exists(path):
        r=requests.get(url)
        with open(path,'wb') as f:
            f.write(r.content)
            f.close()
            print("文件保存成功")
    else:
        print("文件已存在")
except:
    print("爬取失败")

其中的url在某网页中图片右键的属性能看到,最后将文件保存在D盘的picture文件夹里。

发布了219 篇原创文章 · 获赞 13 · 访问量 9806

猜你喜欢

转载自blog.csdn.net/qq_35812205/article/details/104254845
今日推荐