python爬虫——黑板客老师课程学习
程序:
目标url
内容提取
表现形式
为什么:
大数据——数据膨胀,信息太多了,不知道哪些信息适合你,例如谷歌搜索引擎。
垂直行业搜索——某一个行业的搜索,与搜索引擎最大的区别:搜索引擎是告诉你哪些网页适合你,而垂直搜索引擎是告诉你哪些数据适合你。例如:去哪儿网,告诉你哪些机票适合你;链家网,告诉你哪些房子适合你。
学什么:

get && show 就是爬虫
装库
pip install beautifulsoup4
pip install requests
pip install selenium
beautifulsoup4:把html看成一个树

#!/usr/bin/env python
# coding: utf-8
#copyRight by heibanke import urllib
from bs4 import BeautifulSoup
import re html = urllib.urlopen('http://baike.baidu.com/view/284853.htm')
#通过urllib.urlopen来获取这个网址的内容
bs_obj = BeautifulSoup(html,"html.parser")
#通过beautifulSoup来实例化一个对象 #findAll(tag, attributes, recursive, text, limit, keywords)
#find(tag, attributes, recursive, text, keywords)
#recursive=False表示只搜索直接儿子,否则搜索整个子树,默认为True。
#findAll(“a”)
#findAll(“a”, href=“”)
#findAll(“div”, class=“”)
#findAll(“button”, id=“”) #a_list = bs_obj.findAll("a")
a_list = bs_obj.findAll("a",href=re.compile("\.baidu\.com\w?"))#正则表达式处理
#这里的a是html中的一个标签
#<a> 标签定义超链接,用于从一张页面链接到另一张页面。
#<a> 元素最重要的属性是 href 属性,它指示链接的目标
print a_list for aa in a_list:
if not aa.find("img"):#图片的链接没有用
if aa.attrs.get('href'):
print aa.text, aa.attrs['href']
这不过是入门而已,我们如果想更深入的了解,还要学会beautifulsoup4这个库,可以通过帮助文档、博客啥的进行学习。
关卡1:循环访问url
http://www.heibanke.com/lesson/crawler_ex00/

我就奇怪了,代码是黑板课老师那边提供的,可是运行的时候就会出错,不知道为什么。
# -*- coding: utf-8 -*-
# CopyRight by heibanke import urllib
from bs4 import BeautifulSoup
import re url='http://www.heibanke.com/lesson/crawler_ex00/'
number=['']
loops = 0 while True:
content = urllib.urlopen(url+number[0]) bs_obj = BeautifulSoup(content,"html.parser")
tag_number = bs_obj.find("h3") number= re.findall(r'\d+',tag_number.get_text()) if not number or loops>100:
break
else:
print number[0] loops+=1 print bs_obj.text

关卡2:
有用户名,然后破解密码,密码是30内数字
需要:post数据,requests
表单提交
http://www.heibanke.com/lesson/crawler_ex01/
requests库:
·支持各种request类型
HTTP request type:GET,POST,PUT(相当于新建),DELETE,HEAD and OPTIONS
·支持各种POST,如上传文件,
·支持自定义header(有些网站会检测是否是机器人(爬虫)在访问)
·支持json数据解析
·支持访问Cookies
·支持重定向地址
·支持设置timeout——有的网址访问时间过长,可以自动设置一个timeout

第三关:
登录验证
CSRF跨站请求伪造
CSRF是防止恶意攻击的
Selenium 硒
一个高级库,模拟浏览器登录的功能
名字由来:在之前有一个公司Mercury 汞,被惠普收购,这个是对企业做一些测试工具。而Selenium可以降低汞的毒性,相当于它的克星。
·模拟用户浏览器操作,Selenium IDE可录制测试动作——不用写代码
·Functional Test,自动测试
·支持多种语言,Python,Java,ruby,c#,php
·webdriver支持多种浏览器,最方便是Firefox
python爬虫——黑板客老师课程学习的更多相关文章
- python类——黑板客老师课程学习
1.基本语法 class class_name(base_class): base_class是它继承的父类 class_var def methods(self,args): statements ...
- python画图—黑板客老师课程学习
1.介绍 把每个图都看作一个对象,图中的每一个部分也是对象.——所有的一切都是对象. 工具——ipython notebook 是python里边用的最多的2D&3D的会图库,开源免费库,使用 ...
- python变量——黑板客老师课程学习
1.和C++.Java的区别: 动态类型:不需要声明a的类型. a=34 type(a) <type ‘int’> 一切皆对象: 4 2.数字: 自动转换类型:a=34 A=3.14 ...
- python计算机视觉——黑板客老师课程学习
机器学习的一个应用方向,是如何让机器去理解图像.包括对图像里物体的识别,跟踪和测量. 能做什么——无人驾驶汽车.人脸识别.车牌识别手势识别(游戏方向) PIL静态的库 OpenCV 动态的库 impo ...
- 线性代数和numpy——黑板客老师课程学习
一.代数是什么 代数->数的抽象表示->向量空间(线性空间) 线代->线性代数 关系: 向量空间之间和内部转换是通过线性变换. 实数——一维空间的点 复数——二维空间的点 如果两个向 ...
- python语句表达式——黑板客老师课程学习
1.赋值 多重赋值: a,b=1,2 a,b=’beijing’,’sh’ a,b=’bj’ a,b=(1,2) a,b=[1,2] …… 2.输入输出 输入: raw_input() 原始输入 ...
- pyhton函数——黑板客老师课程学习
1.基本语法 语法: def func_name (arguments) 定义 statements return x,y x,y=func_name(para) 调用 作用域: 可以给内置的函 ...
- "做中学"之“极客时间”课程学习指导
目录 "做中学"之"极客时间"课程学习指导 所有课程都可以选的课程 Java程序设计 移动平台开发 网络攻防实践 信息安全系统设计基础 信息安全专业导论 极客时 ...
- python爬虫 | 一条高效的学习路径
数据是创造和决策的原材料,高质量的数据都价值不菲.而利用爬虫,我们可以获取大量的价值数据,经分析可以发挥巨大的价值,比如: 豆瓣.知乎:爬取优质答案,筛选出各话题下热门内容,探索用户的舆论导向. 淘宝 ...
随机推荐
- SQL数据库添加新账号,只操作指定数据库
思路: 1.创建数据库服务器登录用户 2.创建指定数据库的用户,并且和服务器用户联系起来 3.给数据库的用户添加角色 代码实现: 1.创建名为login的服务器登录用户dba,尼玛dbpwd,默认数据 ...
- JAVA使用堆外内存导致swap飙高
https://github.com/nereuschen/blog/issues/29 堆内内存分析一般用Memory Analyzer Tool http://tivan.iteye.com/bl ...
- IOC框架整体介绍
1.Castle Windsor 2.Autofac 3.Unity 4.Spring.NET 5.StructureMap 6.Ninject
- translate和replace的区别
今天在oracle数据库中看到replace和translate的嵌套就有点蒙了,于是就上网看了一下,感觉豁然开朗: 今天遇到的问题如下: replace(TRANSLATE(a.deal_msg,' ...
- windows平台eclipse for C++开发环境搭建
参考: 1 blog.sina.com.cn/s/blog_75f3c1f201014l5c.html 2 MinGW官方的安装说明 一.安装并配置MinGW 1 MinGW官网(www.mingw. ...
- Google Font字体本地化使用提高网站访问速度
Google Web font在国内经常不稳定,速度在国内延迟也很高,而引发网页打开速度慢. 一.常见的字体格式介绍 不同的浏览器对字体格式支持是不一致的,常见的如下: 1.TureTpe(.ttf) ...
- pyqt5安装
花了一天时间,终于是装好了. 这东西硬是把我从Python2掰弯成了Python3 本来用pip安装了一个pyqt,但是后来才发现,这是个x64版本的. 我不知道啊! 我以为是还要装qt5 所以我把q ...
- 仿造w3school的试一试功能,实现左侧编辑框,右侧效果页面
转自http://fhqllt.iteye.com/blog/836186 每次想快速测试页面效果的时候,特别是在学习前端代码的时候,就想到W3school的那个试一试功能,一直都是用他们那个在线的版 ...
- sqlalchemy
#!/usr/bin/env python #coding:utf8 from sqlalchemy import create_engine,and_,or_,func,Table from sql ...
- android 调用地图
有时候我们需要调用地图显示一下位置,这时候可能还需要导航,导航做起来有点麻烦,如果调用第三方的是不是很简单,本文就是写这个来的: 第一种方式:android Intent调用地图应用客户端 调用百度地 ...