摘要: 介绍 之前介绍了Ajax的分析和爬取方式,但是也不能解决全部问题。 比如 "中国青年网" 的分页部分使用JS生成的,并非原始HTML代码, "ECharts" 中的图形都是经过JS计算之后生成的, "淘宝" 的Ajax接口有很多加密参数。这些网站很难直接分析Ajax来抓取。为了解决这些问题,最直接的 阅读全文
posted @ 2018-09-09 17:40 HackHarry 阅读(271) 评论(0) 推荐(0) 编辑
摘要: 介绍 "智高考" 是一个高考志愿网站,也是基于Ajax的。高中的时候我在wyz大神的帮忙下,尝试过爬取信息来为填志愿做准备。但是当时没有系统学习过爬虫,几乎都是靠大神带飞,因此今天再次尝试爬取智高考的大学信息。(数据全部基于智高考,侵删) 该网站有多种查询模式,我打算爬取的有两种。 1.各省份的本科 阅读全文
posted @ 2018-09-08 19:05 HackHarry 阅读(2179) 评论(0) 推荐(0) 编辑
摘要: 介绍 Ajax,全称为Asynchronous JavaScript and XML,即异步的JavaScript和XML。这是一种利用JS在保证页面不被刷新、页面链接不变的情况下与服务器交换数据并更新部分网页的技术。例如微博的下滑页面,这就是通过Ajax获取新数据并呈现的过程。 正文 Ajax的基 阅读全文
posted @ 2018-09-07 23:30 HackHarry 阅读(1496) 评论(0) 推荐(0) 编辑
摘要: 介绍 BeautifulSoup和pyquery都是用来解析html的库,与昨天学的XPath有很多相似之处,因此就将这两个库放在一起学习 BeautifulSoup库 基本用法 节点选择器 直接调用节点的名称就可以选择节点元素,例如soup.div就是选择第一个div节点 经过选择器选择后,选择结 阅读全文
posted @ 2018-09-06 16:50 HackHarry 阅读(2109) 评论(0) 推荐(0) 编辑
摘要: 介绍 XPath,全称XML Path Language,即XML路径语言,用来搜寻XML文档,也同样适用于HTML文档的搜索。所以,在做爬虫的时候,就可以使用XPath来做相应的信息抽取。python中相应的库为lxml库,需要自行安装 正文 XPath主要是有大量的方法,故我主要用代码的形式来记 阅读全文
posted @ 2018-09-05 16:46 HackHarry 阅读(355) 评论(0) 推荐(0) 编辑
摘要: 介绍 今天打算做一个小项目,爬取 "猫眼电影top100" 正文 URL分析 打开网址,发现Top100分为10页,每页10部电影,转到第二页分析URL http://maoyan.com/board/4?offset=10 可以看到多了个offset参数,猜测是由offset来控制页面,于是转到第 阅读全文
posted @ 2018-09-04 13:23 HackHarry 阅读(350) 评论(0) 推荐(0) 编辑
摘要: 介绍 正则表达式是一种处理字符串的强大工具,能实现字符串的检索、替换、匹配验证等。在爬虫中,正则表达式主要用于从HTML里提取所需要的信息 常用的匹配规则 模式|描述 | \w|匹配字母、数字及下划线 \W|匹配不是字母、数字及下划线的字符 \s|匹配任意空白字符,等价于[\t\n\r\f] \S| 阅读全文
posted @ 2018-09-03 18:19 HackHarry 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 准备工作 requests库不是python自带的库,可以用pip安装。在使用时导入requests即可。 基本用法 GET请求 其中,网页返回的内容是json格式的字符串类型,所以可以直接调用json()方法得到字典格式的内容 此外,如果需要附加额外的信息,可以用params这个参数,示例如下: 阅读全文
posted @ 2018-09-02 21:26 HackHarry 阅读(240) 评论(0) 推荐(0) 编辑
摘要: 前言 我买了崔庆才的《Python3网络爬虫开发实战》,趁着短学期,准备系统地学习下网络爬虫。在学习这本书的同时,通过博客摘录并总结知识点,同时也督促自己每日学习。本书第一章是开发环境的配置,介绍了爬虫相关的各种库以及如何安装,这里就跳过了。第二章是爬虫基础,都是些基本知识点,也跳过。从第三章开始认 阅读全文
posted @ 2018-09-01 23:37 HackHarry 阅读(244) 评论(0) 推荐(0) 编辑
摘要: "原题链接" 描述 相信大家都会做两个整数的 A+B 了,今天我们把它扩展到矩阵,如果给你两个 N M 的矩阵,你会做么? 输入描述 第一行一个数 C(1 0) { int n, m; Matrix a = new Matrix(); Matrix b = new Matrix(); Matrix 阅读全文
posted @ 2018-03-31 16:48 HackHarry 阅读(154) 评论(0) 推荐(0) 编辑