网页爬取方法汇总:

  • 浏览器console
  • 浏览器插件
    • · Web Scraper
  • 在线网页爬取工具
  • 八爪鱼软件
  • Python

案例:爬取豆瓣电影Top 250的列表(电影名称、导演、主演、星级等信息)


浏览器console

操作:浏览器内鼠标右键 —> “检查”(不同的浏览器名称可能不一样,此处使用了Google)—> Elements :查看网页结构 —> Console : 输入指令


var i = 0;
var hd = document.querySelectorAll("div.hd > a");
var bd = document.querySelectorAll("div.bd > p");
var star = document.querySelectorAll("div.bd > div.star > span.rating_num");
var quote = document.querySelectorAll("div.bd > p.quote > span.inq");
for(var t of document.querySelectorAll("ol.grid_view > li > div.item > div.info")){       console.log(hd[i].href);console.log(hd[i].text);console.log(bd[i].innerHTML);console.log(star[i].innerHTML);console.log(quote[i].innerHTML);i=i+1;}

常用命令(点击链接查看示例):

方法 描述
getElementsByClassName() 返回文档中所有指定类名 " class= " 的元素集合
document.getElementById() 返回对拥有指定 id 的第一个对象 " id= " 的引用
document.getElementsByName() 返回带有指定名称 " name= " 的对象集合
getElementsByTagName() 返回带有指定标签名的所有对象集合,如”div"、“p”,无法指定类名id等
document.querySelectorAll() 返回文档中匹配的CSS选择器的所有元素节点列表,可以获取指定类名、属性的元素

评价
优点:有浏览器就可以操作,不需要下载软件,不需要部署环境,学习成本不算很高
缺点:当采集任务复杂时,需要增加学习成本的投入;采集数据的格式可能不规整需要进一步处理

参考资料
HTML DOM Document 对象
怎么批量提取一个网页里面的链接? - 喂鸭梨的回答 - 知乎


浏览器插件

推荐几个安装浏览器插件的网站:(懒得把网址从吃灰的收藏夹翻出来了,再说吧 = V =)

· Web Scraper

操作
(1)将浏览器“检查”窗口调整为“位于底部”的布局,创建一个新的Web Scraper项目

(2)填写爬虫项目信息

(3)建立选择器,选择需要采集的网页元素








在线网页爬取工具

目前几款在线网页爬取工具使用的不是很多,后续再补充使用体验


八爪鱼软件

当页面较整齐有规律时,八爪鱼是个相当不错的选择!只需要输入网址,软件就可以自动识别网页(还提供了翻页),选择需要采集的元素进行采集即可,具体操作见官网教程 八爪鱼采集器官网。

但是如果网页布局较复杂,或是有特别的采集需求时,就需要投入一定的学习成本才能完成采集任务。


Python

(1)构建UA代理,发送请求,获得响应并解码HTML页面

from urllib import request
from lxml import etreeurl = 'https://movie.douban.com/top250'
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36'}# 构建UA代理
req = request.Request(url = url , headers = headers)
# 发送请求
response = request.urlopen(req)
# 解码响应
html = response.read().decode('utf-8')

(2)确定要采集的网页元素,获取各元素的xpath


page = etree.HTML(html)
movie_list = page.xpath('//*[@id="content"]/div/div[1]/ol/li')
file = pd.DataFrame(columns = ['title','detail','type','star','quote'])
i = 0for m in movie_list: title_list = m.xpath('//li/div/div[2]/div[1]/a/span[1]/text()')   file.loc[i,'title']=title_list[i].replace("\xa0", "").replace('\n','') if title_list else None detail_list = m.xpath('//li/div/div[2]/div[2]/p[1]/text()')file.loc[i,'detail']=detail_list[i].replace("\xa0", "").replace('\n','') if detail_list else Nonetype_list = m.xpath('//li/div/div[2]/div[2]/p[1]/text()[2]')file.loc[i,'type']=type_list[i].replace("\xa0", "").replace('\n','') if type_list else Nonestar_list = m.xpath('//li/div/div[2]/div[2]/div/span[2]/text()')file.loc[i,'star']=star_list[i] if star_list else Nonequote_list = m.xpath('//li/div/div[2]/div[2]/p[2]/span/text()')file.loc[i,'quote']=quote_list[i] if quote_list else Nonei = i+1file

输出结果:

参考资料
C语言中文网 - Python爬虫教程

【整理】爬取网页数据的方法汇总相关推荐

  1. python爬取网页公开数据_如何用Python爬取网页数据

    使用Python爬取网页数据的方法: 一.利用webbrowser.open()打开一个网站:>>> import webbrowser >>> webbrowse ...

  2. Python小姿势 - Python爬取网页数据

    Python爬取网页数据 爬取网页数据是一个比较常见的Python应用场景,有很多第三方库可以帮助我们完成这个任务.这里我们介绍一下urllib库中的一个常用方法:urllib.request.url ...

  3. 编程python爬取网页数据教程_实例讲解Python爬取网页数据

    一.利用webbrowser.open()打开一个网站: >>> import webbrowser >>> webbrowser.open('http://i.f ...

  4. python爬虫教程:实例讲解Python爬取网页数据

    这篇文章给大家通过实例讲解了Python爬取网页数据的步骤以及操作过程,有兴趣的朋友跟着学习下吧. 一.利用webbrowser.open()打开一个网站: >>> import w ...

  5. 如何使用python实现简单爬取网页数据并导入MySQL中的数据库

    前言:要使用 Python 爬取网页数据并将数据导入 MySQL 数据库,您需要使用 Requests 库进行网页抓取,使用 BeautifulSoup 库对抓取到的 HTML 进行解析,并使用 Py ...

  6. 如何用python爬取网页数据,python爬取网页详细教程

    大家好,本文将围绕python怎么爬取网站所有网页展开说明,如何用python爬取网页数据是一个很多人都想弄明白的事情,想搞清楚python如何爬取网页数据需要先了解以下几个事情. 1.如何用Pyth ...

  7. java爬取网页数据_利用Python做数据分析—对前程无忧数据类岗位进行分析

    引言 随着时代的发展,我国在各行各业都需要大量的人才引进,处于近几年最热门的行业也称"最火行业":大数据.数据分析.数据挖掘.机器学习.人工智能,这五门行业各有不同又互有穿插.近几 ...

  8. pycharm查看html页面,pycharm爬取网页数据

    1 python环境的配置 1.1 安装python文件包,放到可以找到的位置 1.2 右键计算机->属性->高级环境设置->系统变量->Path->编辑->复制p ...

  9. python爬虫爬网站数据登录_使用webdriver+urllib爬取网页数据(模拟登陆,过验证码)...

    urilib是python的标准库,当我们使用Python爬取网页数据时,往往用的是urllib模块,通过调用urllib模块的urlopen(url)方法返回网页对象,并使用read()方法获得ur ...

  10. Python爬虫爬取网页数据并存储(一)

    Python爬虫爬取网页数据并存储(一) 环境搭建 爬虫基本原理 urllib库使用 requests库使用 正则表达式 一个示例 环境搭建 1.需要事先安装anaconda(或Python3.7)和 ...

最新文章

  1. 2.SDL游戏开发:把代码写长一点(一)
  2. mysql基于传统的log_file及log_pos主从复制
  3. Github 项目推荐 | 用手势输入表情符号 —— Emojinator
  4. 自定义时间格式 返回年月日
  5. 这周开发工作时间及内容、思考和阅读的内容
  6. 大多数人不知道的:线程池CallerRunsPolicy()拒绝策略
  7. java 解压ygb文件_文件系统-目录项缓存与散列表
  8. 深入浅出谈SCADA
  9. gite改提交的用户名称
  10. 10部残酷惨烈的要塞攻防电影
  11. 从中国的山水画谈谈游戏场景设计该有的状态
  12. html添加视频背景
  13. http://free.logomaker.cn/tools/icoMaker.aspxICO图标在线制作 -- 为你的网站/软件制作图标(ICO)
  14. 如何运用亚马逊、Facebook、Etsy选品?选品平台和方法分享
  15. Excel全自动项目管理甘特图
  16. 从Eclipse中导入项目到AndroidStudio中
  17. 【LVS+Keepalived】 LVS+Keepalived实现tcp、udp负载均衡及HA高可用
  18. 简单使用exoplayer播放HLS
  19. 双一流高校全球通邮经验:Coremail安全海外中继提升科研效率
  20. 读文件时出现这个错误 'utf-8' codec can't decode byte 0xba in position 21: invalid start byte...

热门文章

  1. 阿里P9:程序员的“青春饭”,从什么时候开始结束?
  2. windows PE结构解析
  3. WPF实现半圆形导航菜单
  4. 临湘东经子午线经度_地区经度查询_实用查询工具大全 - Powered by Senlon!
  5. 转录组RNA-seq分析前沿进展综述
  6. 公考之申论话题分析——基于词云和主题聚类
  7. 定制网站建设流程有哪些
  8. ffmpeg安装之mac安装
  9. Lazada市场大数据分析,东南亚年轻群体的消费趋势!
  10. 微软手环2服务器,微软手环2评测 数据狂的最爱