关于Python网络爬虫实战笔记①
python网络爬虫项目实战笔记①如何下载韩寒的博客文章
python网络爬虫项目实战笔记①如何下载韩寒的博客文章
2. 韩寒Blog文章列表特征
随便选一个文章的超链接,右键按审查元素,可以找到
<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>
将找到的超链接地址打开一下,
发现就是所要找的链接地址
因此,文章列表特征就是
<a title=…… href="…….html"
建立一个python文件(文件名:GetHanhan.py),复制一下刚找到的超链接所在地
#coding:utf-8
#<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>
由于是中文,还得注明utf-8
3.字符串函数—— find函数
[KANO@kelvin ~]$ python
Python 2.7.10 (default, Sep 24 2015, 17:50:09)
[GCC 5.1.1 20150618 (Red Hat 5.1.1-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> help(str.find)
Help on method_descriptor:
find(...)
S.find(sub [,start [,end]]) -> int
Return the lowest index in S where substring sub is found,
such that sub is contained within S[start:end]. Optional
arguments start and end are interpreted as in slice notation.
Return -1 on failure.
从S里头找sub ,如果找到就返回第一次出现的地方,这个函数还可以指定从字符串的什么地方开始、什么地方结束。
例如:
注:数数从0位开始,因此应该是01234这样数数。
首先先找到特定的字符,如<a title,缩小范围
#coding:utf-8
#<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>
str0='<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>'
title=str0.find(r'<a title')
print title
运行一下,
[KANO@kelvin 桌面]$ python GetHanhan.py
0
一下就找到了,<a title在第1就是了。
如果在<a title前面加上一些字符试试看,
像这样的,
运行一下,
<a title是在第15个字符,没错!
在代码后面再加上
#coding:utf-8
#<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>
str0='<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>'
title=str0.find(r'<a title')
print title
href=str0.find(r'href=')
print href
查找一些href=,存盘运行
那么http就在href的h所在位置加6个字符。
接下来找到html的位置,在代码后加上
html=str0.find(r'.html')
print html
运行一下,
那么,介于28+6到81+5之间的这些字符串就是我们要寻找的链接地址
试着打印出找到的地址,
url=str0[href:html]
print url
有点不对,再加上迁移位,
url=str0[href+6:html+5]
print url
这下没错了吧~
4.通过浏览器把网页打开——urllib
使用urllib库
#coding:utf-8
#<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>
import urllib
str0='<a title="" target="_blank" href="http://blog.sina.com.cn/s/blog_4701280b0102e7pk.html">一个流传多年的谣言</a>'
title=str0.find(r'<a title')
print title
href=str0.find(r'href=')
print href
html=str0.find(r'.html')
print html
url=str0[href+6:html+5]
print url
content=urllib.urlopen(url).read()
print content
这篇文章内容就读取下来了
接下来,把读取下来的文件保存文件
先设定文件名,改一下最后两行代码
content=urllib.urlopen(url).read()
# print content
filename=url[-26:]
print filename
把链接地址的后26个字符提取作为文件名
加上
open(filename,'w').write(content)
生成文件
这样就把韩寒首页里面的随便一篇文章下载下来了。
关于Python网络爬虫实战笔记①的更多相关文章
- 关于Python网络爬虫实战笔记③
Python网络爬虫实战笔记③如何下载韩寒博客文章 Python网络爬虫实战笔记③如何下载韩寒博客文章 target:下载全部的文章 1. 博客列表页面规则 也就是, http://blog.sina ...
- python网络爬虫学习笔记
python网络爬虫学习笔记 By 钟桓 9月 4 2014 更新日期:9月 4 2014 文章文件夹 1. 介绍: 2. 从简单语句中開始: 3. 传送数据给server 4. HTTP头-描写叙述 ...
- python网络爬虫实战PDF高清完整版免费下载|百度云盘|Python基础教程免费电子书
点击获取提取码:vg1y python网络爬虫实战帮助读者学习Python并开发出符合自己要求的网络爬虫.网络爬虫,又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动地抓取互联网信息的程序或者脚 ...
- 《精通python网络爬虫》笔记
<精通python网络爬虫>韦玮 著 目录结构 第一章 什么是网络爬虫 第二章 爬虫技能概览 第三章 爬虫实现原理与实现技术 第四章 Urllib库与URLError异常处理 第五章 正则 ...
- Python网络爬虫实战(一)快速入门
本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站的爬虫实战来进行. 我们编写网络爬虫最主要 ...
- python网络爬虫实战之快速入门
本系列从零开始阐述如何编写Python网络爬虫,以及网络爬虫中容易遇到的问题,比如具有反爬,加密的网站,还有爬虫拿不到数据,以及登录验证等问题,会伴随大量网站的爬虫实战来进行. 我们编写网络爬虫最主要 ...
- Python网络爬虫实战:根据天猫胸罩销售数据分析中国女性胸部大小分布
本文实现一个非常有趣的项目,这个项目是关于胸罩销售数据分析的.是网络爬虫和数据分析的综合应用项目.本项目会从天猫抓取胸罩销售数据,并将这些数据保存到SQLite数据库中,然后对数据进行清洗,最后通过S ...
- Python网络爬虫实战入门
一.网络爬虫 网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序. 爬虫的基本流程: 发起请求: 通过HTTP库向目标站点发起请求,也就是发送一个Request ...
- python网络爬虫学习笔记(一)Request库
一.Requests库的基本说明 引入Rquests库的代码如下 import requests 库中支持REQUEST, GET, HEAD, POST, PUT, PATCH, DELETE共7个 ...
随机推荐
- 批处理就是windows的杰作啊
今天要为了解决vs不能同时开启调试和编写的问题,我就上网查找了一些批处理的命令,用批处理调用exe,和打开txt,虽然一行代码就解决了但是我没用过啊,很陌生. call 路径\a.exe 就相当于 ...
- JS学习笔记(四)常用对象
Error // 语法 throw new Error("消息"); 类似于C#中的Exception对象 // alert(num); try { throw new Error ...
- 位运算及在java中的应用整理
计算机编码: 原码 符号位为0表示正数,为1表示负数: 其余各位等同于真值的绝对值. 如:0000 0000 0000 0010 =2,1000 0000 0000 0010 =-2 反码 符号位的用 ...
- jsp相对路径和绝对路径小谈
很长一段时间纠结过JSP中的相对路径和绝对路径,也研究过一段时间,今天趁着有点时间,记下来,也有大家分享一下. 1)我们先来理解一下相对路径 首先还是我们的开始,建一个WEB项目,只是测试一下而已,名 ...
- Oracle EBS使用adpatch工具打patch过程【Z】
Oracle EBS使用adpatch工具打patch过程 从Metalink下载补丁 登陆到Metalink(https://support.oracle.com),Oracle内部用户可以使用AR ...
- 关于在storyboard拖按钮控件,手动设置代码不成功的问题
首先,在 storyboard 中拖拽一个按钮控件.设置好约束条件
- JAVA Stop The World 第八节
JAVA Stop The World 第八节 小伙伴还记得上一篇中我们留下的一个问题吗?什么是停顿类型!经过上几章的学习,我们知道垃圾回收首先是要经过标记的.对象被标记后就会根据不同的区域采用不同的 ...
- 航频卫士APP截图
- 搜索服务器xunsearch实现
安装方法: centos 6.6 64位 histroy: 12 cd /srv/ 13 wget http://www.xunsearch.com/download/xunsea ...
- binwalk windows安装和使用方法
binwalk是一个文件的分析工具,旨在协助研究人员对文件进行分析,提取及逆向工程.简单易用,完全自动化脚本,并通过自定义签名,提取规则和插件模块,还重要一点的是可以轻松地扩展. 以上是binwalk ...