Python 网络爬虫笔记2 – Requests库实战


Python 网络爬虫系列笔记是笔者在学习嵩天老师的《Python网络爬虫与信息提取》课程及笔者实践网络爬虫的笔记。

课程链接:Python网络爬虫与信息提取
参考文档:
Requests 官方文档(英文)
Requests 官方文档(中文)
Beautiful Soup 官方文档
re 官方文档
Scrapy 官方文档(英文)
Scrapy 官方文档(中文)


1、Robots 协议


作用: 网站告知网络爬虫哪些页面可以抓取,哪些不行

形式: 在网站根目录下的robots.txt文件

Robots协议基本语法:

  • User-agent:访问对象,*代表所有
  • Disallow:不予许爬取的目录,/代表根目录
# 京东Robots 协议:https://www.jd.com/robots.txtUser-agent: *
Disallow: /?*
Disallow: /pop/*.html
Disallow: /pinpai/*.html?*
User-agent: EtaoSpider
Disallow: /
User-agent: HuihuiSpider
Disallow: /
User-agent: GwdangSpider
Disallow: /
User-agent: WochachaSpider
Disallow: /

2、京东商品页面的爬取


  • 访问京东网站,获取所要爬取商品的url链接
  • 使用爬取网页的通用代码框架
import requestsdef get_html_text(url):"""爬取网页的通用代码框架"""try:r = requests.get(url, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingreturn r.textexcept:return '产生异常'def jd_goods():"""爬取京东上的某个商品,以华为 mate20 为例"""url = 'https://item.jd.com/100000822981.html'print(get_html_text(url))

3、亚马逊商品页面的爬取


  • 访问亚马逊网站,获取所要爬取商品的url链接
  • 亚马逊会拒绝非浏览器的请求,需修改url头部,伪装成浏览器发送请求
  • 修改爬取网页的通用代码框架
import requestsdef amazon_goods():"""爬取京东上的某个商品,以Kindle为例"""url = 'https://www.amazon.cn/gp/product/B07746N2J9'try:hd = {'user-agent': 'Mozilla/5.0'}r = requests.get(url, headers=hd)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text[0:1000])except:print('爬取失败')if __name__ == '__main__':amazon_goods()

4、百度/360搜索关键字提交


  • 百度的关键词接口:http://www.baidu.com/s?wd=keyword
  • 360的关键词接口:http://www.so.com/s?q=keyword
import requestsdef baidu_search():"""使用百度搜索引擎,提交关键词查询"""url = 'http://www.baidu.com/s'try:kv = {'wd': 'python'}r = requests.get(url, params=kv)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text)except:print('爬取失败')if __name__ == '__main__':baidu_search()

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


  • 获取图片的url链接
  • 设置图片保存路径
  • 下载图片并保存
import requests
import osdef download_image():"""爬取图片,以百度的logo为例"""url = 'https://www.baidu.com/img/bd_logo1.png'root = 'E:/pics/'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('爬取失败')if __name__ == '__main__':download_image()

6、IP地址归属地查询


  • 138 IP地址归属地查询接口:http://m.ip138.com/ip.asp?ip=ipaddress
  • 查询百度网站的ip地址,在cmd中输入:nslookup www.baidu.com
import requestsdef ip_attribution():"""IP地址归属地查询, 使用138的接口查询百度的IP归属地"""url = 'http://m.ip138.com/ip.asp?ip='ip = '14.215.177.39'try:r = requests.get(url+ip, timeout=30)r.raise_for_status()r.encoding = r.apparent_encodingprint(r.text)except:print('查询失败')if __name__ == '__main__':ip_attribution()

Python 网络爬虫笔记2 -- Requests库实战相关推荐

  1. Python 网络爬虫笔记1 -- Requests库

    Python 网络爬虫笔记1 – Requests库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyt ...

  2. Python网络爬虫与信息提取—requests库入门

    requests的学习笔记 requests库自动爬取HTML页面,自动网络请求提交 此博客为中国大学MOOC北京理工大学<Python网络爬虫与信息提取>的学习笔记 requests库的 ...

  3. Python 网络爬虫笔记5 -- Beautiful Soup库实战

    Python 网络爬虫笔记5 – Beautiful Soup库实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. ...

  4. Python 网络爬虫笔记11 -- Scrapy 实战

    Python 网络爬虫笔记11 – Scrapy 实战 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  5. Python 网络爬虫笔记3 -- Beautiful Soup库

    Python 网络爬虫笔记3 – Beautiful Soup库 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程 ...

  6. Python 网络爬虫笔记9 -- Scrapy爬虫框架

    Python 网络爬虫笔记9 – Scrapy爬虫框架 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Py ...

  7. Python 网络爬虫笔记6 -- 正则表达式

    Python 网络爬虫笔记6 – 正则表达式 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Python网 ...

  8. Python 网络爬虫笔记10 -- Scrapy 使用入门

    Python 网络爬虫笔记10 – Scrapy 使用入门 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接: ...

  9. Python 网络爬虫笔记8 -- 股票数据定向爬虫

    Python 网络爬虫笔记8 – 股票数据定向爬虫 Python 网络爬虫系列笔记是笔者在学习嵩天老师的<Python网络爬虫与信息提取>课程及笔者实践网络爬虫的笔记. 课程链接:Pyth ...

最新文章

  1. Android之linux基础教学之六 异常
  2. IOS开发笔记2-C语言基础复习
  3. 如何完美隐藏Disposable的存储和销毁过程(二)
  4. 2016年全球芯片市场或衰退2.13%
  5. 苹果怎样运行低版本php,Mac如何安装多个php版本
  6. MySQL in语句排序
  7. C++入门经典-例3.9-使用嵌套表达式判断一个数是否是3和5的整数倍
  8. (转)什么是DevOps?阿里专家为你来解读
  9. 语义分割Swin Transformer
  10. 华为云计算认证考试大纲是什么?华为云计算认证含金量高吗?
  11. iPhone5主摄像头图像传感器来自SONY
  12. hutool SpringUtil.getBean() NullPointerException
  13. stm32_GPIO模拟I2c读写EEPROM
  14. 2023-03-27-安装office365显示Microsoft Office 专业增强版 2016
  15. 圈内著名ts_央视为电竞发声:AG和estar当选著名战队,梦泪,猫神被官方肯定
  16. 用单片机C语言开发雨滴智能屏小程序
  17. 1t硬盘怎么分区最好_1T的硬盘空间怎么分区比较合理
  18. 软件工程复试——二、可行性研究
  19. hp服务器重装系统按什么键,惠普重装系统按什么键|惠普u盘装系统按哪个键
  20. 三代测序序列比对利器-BLASR,更小更快更方便

热门文章

  1. zookeeper3.4.6安装
  2. 122 Best Time to Buy and Sell Stock II 买卖股票的最佳时机 II
  3. php基础语法(文件加载和错误)
  4. hdu1796容斥原理
  5. [Postman]排除API请求(9)
  6. 【原创】二级指针中在内存中的样子
  7. 利用zookeeper实现发布订阅模式
  8. 重载操作符与转换(上)
  9. Android UI(三)SlidingMenu实现滑动菜单(详细 官方)
  10. MS-SQL分页not in 方法改进之使用row_number