python爬虫学习记录
爬虫基础
urllib,urllib2,re都是python自带的模块
urllib,urllib2区别是urllib2可以接受一个Request类的实例来设置url请求的headers,即可以模拟浏览器访问url
而urllib仅可以技术url,不可以伪装user-agent字符串等,urllib提供的urlencode方法用来get查询字符串的产生,所以要搭配使用,但urllib2使用的更广泛
re是正则表达式模块,用来分析网站信息
(.*?)是常用的匹配模式,匹配出了换行符以外的字符,是非贪婪模式,读取最少的匹配信息
在编译模式中是用re.S可以让(.*?)匹配任意字符,包括换行符。
一个简单的例子
import urllib2,re def getPage(url): try: request = urllib2.Request(url, headers=headers) response = urllib2.urlopen(request, data, timeout) page = response.read() except Exception, e: print e return page
headers,data,timeout可以根据需要来填写
下载图片urllib.urlretrieve(url, "name.jpg")
try:
except Exception, e:
print e
捕获所有异常并打印异常信息
基础教程http://cuiqingcai.com/1052.html
由于re模块不美观,后面学习了BeautifulSoup的使用
安装BeautifulSoup
pip install BeautifulSoup4
相关用法https://cuiqingcai.com/1319.html
基本实例
from bs4 import BeautifulSoup def getMessage(page): soup = BeautifulSoup(page) parent = soup.find_all() if parent: for child in parent: do somthing else: print "parent not found"
逐层查找先find()在find_all()
由于urllib2只能操作静态网站,为了爬动态网站,可以使用selenium工具,selenium是可以用脚本打开浏览器进行爬虫的工具
由于selenium3会遇到各种问题,所以使用selenium2.53.6
安装selenium2.53.6
pip install selenium==2.53.6
selenium和firefox或chrome或IE等等浏览器混合使用
由于firefox版本不同会遇到不兼容问题,所以使用firefox46.0.1
基本实例
from selenium import webdriver
browser = webdriver.Firefox()
browser.get("http://www.baidu.com")
打开网站后就可以用bs或者re来分析网站信息
在学习过程中发现了一个爬虫框架scrapy,感觉挺好用的
安装scrapy
安装scrapy有点麻烦需要安装各种库
下载教程http://blog.csdn.net/php_fly/article/details/19364913
其中的zope.interface可以通过pip install zope.interface来安装,其他的库可以直接从云盘下载exe文件安装
在python中import各种模块验证是否安装成功
最后一步pip install Scrapy
在命令行中输入scrapy验证是否安装成功
基础教程http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html
基本实例
import scrapy class DmozSpider(scrapy.Spider):
name = "dmoz"
allowed_domains = ["dmoz.org"]
start_urls = [
"http://www.dmoz.org/Computers/Programming/Languages/Python/Books/",
"http://www.dmoz.org/Computers/Programming/Languages/Python/Resources/"
] def parse(self, response):
filename = response.url.split("/")[-2]
with open(filename, 'wb') as f:
f.write(response.body)
dir(),查看当前对象的所有可用方法,type()查看当前对象的类型
sys.exit(),os.exit()用来退出进程,第一个常用
yield关键词,此关键词的作用是返回某个对象后继续执行。如果不用该关键字,则直接会在函数中返回。
python爬虫学习记录的更多相关文章
- Python爬虫学习记录【内附代码、详细步骤】
引言: 昨天在网易云课堂自学了<Python网络爬虫实战>,视频链接 老师讲的很清晰,跟着实践一遍就能掌握爬虫基础了,强烈推荐! 另外,在网上看到一位学友整理的课程记录,非常详细,可以优先 ...
- python爬虫学习记录——各种软件/库的安装
Ubuntu18.04安装python3-pip 1.apt-get update更新源 2,ubuntu18.04默认安装了python3,但是pip没有安装,安装命令:apt install py ...
- python爬虫学习(1) —— 从urllib说起
0. 前言 如果你从来没有接触过爬虫,刚开始的时候可能会有些许吃力 因为我不会从头到尾把所有知识点都说一遍,很多文章主要是记录我自己写的一些爬虫 所以建议先学习一下cuiqingcai大神的 Pyth ...
- 《Python爬虫学习系列教程》学习笔记
http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多.学习过程中我把一些学习的笔记总结下来,还记录了一些自己 ...
- Python爬虫个人记录(三)爬取妹子图
这此教程可能会比较简洁,具体细节可参考我的第一篇教程: Python爬虫个人记录(一)豆瓣250 Python爬虫个人记录(二)fishc爬虫 一.目的分析 获取煎蛋妹子图并下载 http://jan ...
- Python爬虫个人记录(二) 获取fishc 课件下载链接
参考: Python爬虫个人记录(一)豆瓣250 (2017.9.6更新,通过cookie模拟登陆方法,已成功实现下载文件功能!!) 一.目的分析 获取http://bbs.fishc.com/for ...
- [转]《Python爬虫学习系列教程》
<Python爬虫学习系列教程>学习笔记 http://cuiqingcai.com/1052.html 大家好哈,我呢最近在学习Python爬虫,感觉非常有意思,真的让生活可以方便很多. ...
- python爬虫学习 —— 总目录
开篇 作为一个C党,接触python之后学习了爬虫. 和AC算法题的快感类似,从网络上爬取各种数据也很有意思. 准备写一系列文章,整理一下学习历程,也给后来者提供一点便利. 我是目录 听说你叫爬虫 - ...
- Python爬虫学习:三、爬虫的基本操作流程
本文是博主原创随笔,转载时请注明出处Maple2cat|Python爬虫学习:三.爬虫的基本操作与流程 一般我们使用Python爬虫都是希望实现一套完整的功能,如下: 1.爬虫目标数据.信息: 2.将 ...
随机推荐
- ant 执行到javac时运行中止,怎么办?
今天下午我用ant,明明都能打出target.后来改了点代码就不行了,执行到compile的javac时运行中止,真是见鬼了. 在ant构建文件上右击,点击"run as"-> ...
- 微信公众平台开发(84) 小i机器人
很多朋友询问如何开发小黄鸡之类的智能聊天机器人,但遗憾的是小黄鸡接口申请页面在最近几个月里都无法访问,且使用时限制太大,我们找了另一个接口:小i机器人.本文介绍如何在微信公众平台中使用小i接口开发智能 ...
- Kafka+Storm+HDFS整合实践
在基于Hadoop平台的很多应用场景中,我们需要对数据进行离线和实时分析,离线分析可以很容易地借助于Hive来实现统计分析,但是对于实时的需求Hive就不合适了.实时应用场景可以使用Storm,它是一 ...
- activity传值到fragment
1,初始化fragment时候: @Override public void onAttach(Activity activity) { /** 注册广播 */ initBroadcast(); s ...
- Python之路-python环境安装和简单的语法使用
一.环境安装 Win10(安装python3.x): 1.下载安装包 https://www.python.org/downloads/ 2.安装完成后设置环境变量. 桌面-“计算机”-右 ...
- SVG 参考手册
1. SVG元素模块 Animation.Module animate animateColor animateTransform animateMotion set mpath 剪裁模块 clipP ...
- dojo使用疑难杂症集锦
最近在用dojo做项目, 把使用过程中遇到的一些问题记录下来, 方便以后查阅, 因为问题不断, 所以持续更新中.......... 嵌套 TabContainer 时会出现样式问题: tab控制样式问 ...
- 深入理解CSS3 Animation 帧动画 ( steps )
作者:Aaron的博客 网址:http://www.cnblogs.com/aaronjs/p/4642015.html --------------------------------------- ...
- 音乐播放器 AVAudioPlayer、定时器、UISlider
#import <UIKit/UIKit.h> #import <AVFoundation/AVFoundation.h> @interface ViewController ...
- 转:python webdriver API 之层级定位
在实际的项目测试中,经常会有这样的需求:页面上有很多个属性基本相同的元素 ,现在需要具体定位到其中的一个.由于属性基本相当,所以在定位的时候会有些麻烦,这时候就需要用到层级定位.先定位父元素,然后再通 ...