python 爬虫(一)

1. 一次简单的网页访问

urllib 是一个标准的python库(意味着不需要安装任何附件的东西来运行这个demo),包含了通过网络请求数据的方法,处理cookies,甚至更改metadata比如headers和用户代理。

urlopen 这个方法用来通过网络访问远程数据,就是发送一个get请求到制定的url地址。

1 from urllib.request import urlopen
2 html = urlopen(‘http://pythonscraping.com/pages/page1.html‘)
3 print(html.read())

2. BeautifulSoup的简单介绍

这个模块是一个html/xml解析器,它可以很好的处理不规范标记并生成剖析树。

I  installing BeautifulSoup

linux:apt-get install python-bs4  或者 pip install beautifulsoup4

II 在这个模块(bs4)中BeautifulSoup是最常用的

1 from urllib.request import urlopen
2 from bs4 import BeautifulSoup
3
4 html = urlopen("http://www.pythonscraping.com/pages/page1.html")
5 bsobj = BeautifulSoup(html.read(), ‘html.parser‘)
6 print(bsobj.h1)
7
8 #输出:<h1>An Interesting Title</h1>

 3. 异常处理

I 在服务上没有找到请求的地址 一个http error错误会被返回 这个错误可能是 404 page  not found 500 Internal server Error 这些所有的情况urlopen方法会抛出异常HTTPError

1 try:
2     html = urlopen("http://www.pythonscraping.com/exercises/exercise1.html")
3 except HTTPError as e:
4     print(e)
5      #return null,break or do some other ‘plan B‘
6 else:
7     #program continues

II 服务没有找到,urlopen会返回None

1 if html is None:
2     print("URL is not found")
3 else:
4     #program continues

一个捕获各种异常的写法:

 1 from urllib.request import urlopen
 2 from urllib.error import HTTPError
 3 from bs4 import BeautifulSoup
 4 def getTitle(url):
 5   try:
 6     html = urlopen(url)
 7   except HTTPError as e:
 8     return None
 9   try:
10     bsObj = BeautifulSoup(html.read())
11     title = bsObj.body.h1
12   except AttributeError as e:
13     return None
14   return title
15 title = getTitle("http://www.pythonscraping.com/exercises/exercise1.html")
16 if title == None:
17   print("Title could not be found")
18 else:
19   print(title)
时间: 2024-10-15 04:28:05

python 爬虫(一)的相关文章

开始我的Python爬虫学习之路

因为工作需要经常收集一些数据,我就想通过学爬虫来实现自动化完成比较重复的任务. 目前我Python的状况,跟着敲了几个教程,也算是懂点基础,具体比较深入的知识,是打算从做项目中慢慢去了解学习. 我是觉得如果一开始就钻细节的话,是很容易受到打击而放弃的,做点小项目让自己获得点成就感路才更容易更有信心走下去. 反正遇到不懂的就多查多问就对了. 知乎上看了很多关于入门Python爬虫的问答,给自己总结出了大概的学习方向. 基础: HTML&CSS,JOSN,HTTP协议(这些要了解,不太需要精通) R

Python爬虫实战(2):爬取京东商品列表

1,引言 在上一篇<Python爬虫实战:爬取Drupal论坛帖子列表>,爬取了一个用Drupal做的论坛,是静态页面,抓取比较容易,即使直接解析html源文件都可以抓取到需要的内容.相反,JavaScript实现的动态网页内容,无法从html源代码抓取需要的内容,必须先执行JavaScript. 我们在<Python爬虫使用Selenium+PhantomJS抓取Ajax和动态HTML内容>一文已经成功检验了动态网页内容的抓取方法,本文将实验程序进行改写,使用开源Python爬虫

转载:用python爬虫抓站的一些技巧总结

原文链接:http://www.pythonclub.org/python-network-application/observer-spider 原文的名称虽然用了<用python爬虫抓站的一些技巧总结>但是,这些技巧不仅仅只有使用python的开发可以借鉴,我看到这篇文章的时候也在回忆自己做爬虫的过程中也用了这些方法,只是当时没有系统的总结而已,谨以此文为鉴,为以前的爬虫程序做一个总结. 转载原文如下: 学用python也有3个多月了,用得最多的还是各类爬虫脚本:写过抓代理本机验证的脚本,

python爬虫Urllib实战

Urllib基础 urllib.request.urlretrieve(url,filenname) 直接将网页下载到本地 import urllib.request >>> urllib.request.urlretrieve("http://www.hellobi.com",filename="D:\/1.html") ('D:\\/1.html', <http.client.HTTPMessage object at 0x0000000

python 爬虫抓取心得

quanwei9958 转自 python 爬虫抓取心得分享 urllib.quote('要编码的字符串') 如果你要在url请求里面放入中文,对相应的中文进行编码的话,可以用: urllib.quote('要编码的字符串') query = urllib.quote(singername) url = 'http://music.baidu.com/search?key='+query response = urllib.urlopen(url) text = response.read()

[Python爬虫] Selenium爬取新浪微博客户端用户信息、热点话题及评论 (上)

一. 文章介绍 前一篇文章"[python爬虫] Selenium爬取新浪微博内容及用户信息"简单讲述了如何爬取新浪微博手机端用户信息和微博信息. 用户信息:包括用户ID.用户名.微博数.粉丝数.关注数等. 微博信息:包括转发或原创.点赞数.转发数.评论数.发布时间.微博内容等. 它主要通过从文本txt中读取用户id,通过"URL+用户ID" 访问个人网站,如柳岩: http://weibo.cn/guangxianliuya 因为手机端数据相对精简简单,所以采用输

大量 python 爬虫源码分享--说说 python 爬虫这件小事

没有爬虫就没有互联网,越来越觉得写 Python 爬虫原来是一件快乐而高兴的事情,以下是本人收集整理的一批 python 爬虫代码,顺便分享到了别的网站上,喜欢的下下来看看吧. 内容: yunpan.360.cn.py 360 网盘爬虫 ed2k_search.py 电驴爬虫 music.163.com.py 163 音乐爬虫 music.baidu.com.py 百度音乐爬虫 pan.baidu.com.py 百度网盘爬虫 115.py 115 爬虫 91porn.py 91porn 爬虫 等

[Python爬虫] Selenium实现自动登录163邮箱和Locating Elements介绍

目录(?)[+] 前三篇文章介绍了安装过程和通过Selenium实现访问Firefox浏览器并自动搜索"Eastmount"关键字及截图的功能.而这篇文章主要简单介绍如何实现自动登录163邮箱,同时继续介绍Selenium+Python官网Locating Elements部分内容.        希望该篇基础性文章对你有所帮助,如果有错误或不足之处,请海涵~        [Python爬虫] 在Windows下安装PhantomJS和CasperJS及入门介绍(上)        

Python 爬虫批量下载美剧 from 人人影视 HR-HDTV

本人比較喜欢看美剧.尤其喜欢人人影视上HR-HDTV 的 1024 分辨率的高清双字美剧,这里写了一个脚本来批量获得指定美剧的全部 HR-HDTV 的 ed2k下载链接.并依照先后顺序写入到文本文件,供下载工具进行批量下载.比方用迅雷.先打开迅雷,然后复制全部下载链接到剪切板,迅雷会监视剪切板来新建全部任务.假设迅雷没有自己主动监视,能够自己点击新建然后粘贴链接.Python源码例如以下.用的是Python3 : # python3 实现,以下的实例 3 部美剧爬完大概要 10 s import

教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神

欢迎加入Python学习交流群:535993938  禁止闲聊 ! 名额有限 ! 非喜勿进 ! 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http://www.xiaohuar.com/,让你体验爬取校花的成就感. Scrapy,Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. Scrapy吸引人的地方在于