网页结构的相似性

爬虫的目的,是从网站中 自动化 的 批量 提取数据。

首先尝试完成以下操作:

从以下链接中提取电影的标题和标题后的年份:

  • https://movie.douban.com/subject/1292052/
  • https://movie.douban.com/subject/1962665/
  • https://movie.douban.com/subject/26752088/
标题 CSS 选择器:
  

年份 CSS 选择器:
  

从以下链接中提取每只股票的实时价格(最大那个数字):

  • http://stock.finance.sina.com.cn/usstock/quotes/aapl.html
  • http://stock.finance.sina.com.cn/usstock/quotes/bidu.html
  • http://stock.finance.sina.com.cn/usstock/quotes/msft.html
股票价格 CSS 选择器
  

链接相似 的网页通常具有相似的外观。

外观相似 的网页通常具有相似的网页结构。

这两个相似性是爬虫能够从一系列网站中自动化提取数据的重要基础。

代码:

from requests_html import HTMLSession
session = HTMLSession()
links = ['https://movie.douban.com/subject/1292052/', 'https://movie.douban.com/subject/1962665/', 'https://movie.douban.com/subject/26752088/']for link in links:r = session.get(link)title = r.html.find('#content > h1 > span:nth-child(1)', first=True)year = r.html.find('#content > h1 > span.year', first=True)print(title.text, year.text)

也许你用了上面的 股票价格 链接作为爬取对象,你会惊讶的发现程序运行出错了。

事实上,很多网站使用 Javascript 代码来生成网页内容,你的爬虫需要正确解析 Javascript 才能获得你所看到的页面。

requests_html 库提供了一个简单的方法来处理应对情况,你只需要在 r = session.get(link) 后,增加一行 r.html.render(),重新运行代码即可。

(初次运行时需要下载一些辅助工具,请耐心等待,如果下载进度条迟迟未能出现,重新运行程序。)

from requests_html import HTMLSession
session = HTMLSession()
links = ['http://stock.finance.sina.com.cn/usstock/quotes/aapl.html', 'http://stock.finance.sina.com.cn/usstock/quotes/bidu.html', 'http://stock.finance.sina.com.cn/usstock/quotes/msft.html']for link in links:r = session.get(link)r.html.render()title = r.html.find('#content > h1 > span:nth-child(1)', first=True)year = r.html.find('#content > h1 > span.year', first=True)print(title.text, year.text)

【Python爬虫】一个简单的网络爬虫相关推荐

  1. java写一个搜索引擎_搜索引擎—-Java实现一个简单的网络爬虫

    Java实现一个简单的爬虫程序. package SearchCrawler;import java.util.*;import java.net.*;import java.io.*;import ...

  2. 【python】一个简单的贪婪爬虫

    这个爬虫的作用是,对于一个给定的url,查找页面里面所有的url连接并依次贪婪爬取 主要需要注意的地方: 1.lxml.html.iterlinks()  可以实现对页面所有url的查找 2.获取页面 ...

  3. python简单实现网络爬虫

    前言 在这一篇博客中,我会用python来实现一个简单的网络爬虫.简单的爬取一下一些音乐网站.小说网站的标题.关键字还有摘要!所以这个爬虫并不是万能爬,只针对符合特定规则的网站使用.(只使用于爬标题. ...

  4. Python之网络爬虫(爬虫基本认知、网络爬虫之路)

    文章目录 一.爬虫基本认知 二.爬虫之路 初级爬虫工程师 中级爬虫工程师 高级爬虫工程师 一.爬虫基本认知 1.爬虫的简单定义 网络爬虫,又称为网页蜘蛛.蚂蚁.蠕虫.模拟程序,在FOAF社区中,被称为 ...

  5. java编写爬虫_Java怎么写网络爬虫?分分钟带你爬取,源码

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 网络爬虫网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本. ...

  6. 用python写一个简单的爬虫_Python实现简易Web爬虫详解

    编辑推荐: 本文主要介绍了Python实现简易Web爬虫详解,希望对大家有帮助. 本文来自于脚本之家 ,由火龙果软件Alice编辑,推荐. 简介: 网络爬虫(又被称为网页蜘蛛),网络机器人,是一种按照 ...

  7. python爬虫抢火车票_如何用python写一个简单的12306抢票软件|python 爬火车票 教程...

    python 如果抓取验证码图片 类似12306的登录验证码图片 这个以前做次.最大的麻烦是码的识别算法的识别率太低.12306那种网站登陆错3次就限制你20分钟.所以除非你有33%以上的识别率否则不 ...

  8. python sub 不区分大小写_Python网络爬虫入门篇

    1. 预备知识 学习者需要预先掌握Python的数字类型.字符串类型.分支.循环.函数.列表类型.字典类型.文件和第三方库使用等概念和编程方法. Python入门篇:https://www.cnblo ...

  9. 自己编写一个简单的微博爬虫

    自己编写一个简单的微博爬虫 很多做社交媒体数据分析的同学需要采集一些新浪微博上的数据,新浪微博虽然有提供api,但免费的api对获取的数据项和获取的频率都有很大的限制,商业版api据说限制较少,但是作 ...

最新文章

  1. HDU 2444 The Accomodation of Students (二部图+染色)
  2. Visual Studio 2019更新到16.1.4
  3. 记一次阿里云的面试,止步第三轮,可惜!
  4. C语言线程创建与锁机制
  5. python八角图形绘制_(Python)从零开始,简单快速学机器仿人视觉Opencv—第四节:OpenCV处理鼠标事件...
  6. Linux设备开机卡主
  7. 商业认知,你每天出门看天气吗?
  8. WindowsServer2003虚拟机 安装SQL2005失败 终于找到原因了
  9. 封装一个操作文件的函数
  10. win10 打开注册表
  11. 教育学考研跨考计算机,某985计算机专业,想要三跨北师大教育学,会不会很难?...
  12. 基于ISIS路由协议的路由聚合
  13. Springboot启动报错:Failed to process import candidates for configuration class...
  14. 在内存只有10M的空间中申请一块5M的数组空间,会导致OOM吗?
  15. ev1百家云视频解密工具、ev1视频提取工具,支持Windows、MacOS、Linux
  16. 学习CALCULATE函数(一)修订版
  17. hdu 4009 Transfer water(最小树形图模板)
  18. 关于STM32串口3的使用,接收并解析一帧数据
  19. 大概是全网最详细的Electron ipc 讲解(一)——主进程与渲染进程的两情相悦
  20. 【转】美国NASA致力研究超光速引擎,具备可能性

热门文章

  1. pythonの鉴黄之路(四)——urllib模块批量下载
  2. 数据预处理-数据变换-规范化
  3. Sting中方法举例
  4. 草稿selenium显示等待
  5. linux-bash的基本-自动补全-快捷键-历史-命令的别名
  6. Sql Server导入sql文件
  7. 【学习Android NDK开发】Java通过JNI调用native方法
  8. Mybaits之Mapper动态代理开发
  9. C 温故知新 之 指针:函数指针变量、指针型函数
  10. 新装系统或者安装显卡出现的卡住,循环登录等问题