python爬虫(一)

  本文主要是记录一下学习过程,相当于做一次笔记吧

  主要参考崔庆才的Python爬虫学习系列教程(http://cuiqingcai.com/1052.html)

  这里主要是一些Python的基础知识和爬糗事百科的一个实例:

  一:基础知识

    1.爬虫:趴在网络上的蜘蛛,遇见想要的资源,就会抓取下来。

    2.浏览网页的过程:用户输入网站->DNS服务器->找到服务器主机->向服务器发送请求->服务器解析->发给浏览器相应的文件->浏览器解析

    3.url:统一资源定位符(网址):是对互联网上的资源的定位和访问方式的表示,是互联网上标准资源的地址。互联网上每个文件对应着一个URL。(协议+IP(有时有端口号)+具体地址)

  二:urllib库的使用:

    urlopen(url,data,timeout):data是访问URL时要传送的数据,timeout是设置超时(有默认值)

    response = urllib2.urlopen(URL)

    print response.read()  : 返回获取到的网页内容

    print response            : 返回对该对象的描述(个人理解:类似于指针和指针所指向的内容)

    request = urllib2.Requset(URL)

    response =urllib2.urlopen(request)

    (建立一个request,服务器响应,用户接受数据)

    Post和get:

    get:直接以链接形式访问,链接中包含参数,post则不会显示参数

    post:

      values = {"name":"[email protected]","pwd":"xxx"}#理解为序列化

      data=urllib.urlencode(values)

      url = "URL"

      requset = urllib2.Request(url,data)

      response = urllib2.urlopen(request)

    GET:

      values = {"name":"[email protected]","pwd":"xxx"}#理解为序列化

      data=urllib.urlencode(values)

      url="URL"

      gurl=url+"?"+data

      request = urllib2.Request(gurl)

      response = urllib2.urlopen(request)

    设置 Headers:为了模拟浏览器,需要有一个请求身份

      user_agent=‘Mozilla/4.0(compatioble;MSIE5.5;Windows NT)‘

      headers = {‘User-Agent‘:user_agent}  

      data= DATA

      request = urllib2.Request(url,data,headers)

      response = urllib2.urlopen(request)

    代理Proxy:每隔一段时间换一个代理:

      enable_proxy=True

      proxy_handler=urllib2.ProxyHandler({"http":‘http://some-proxy.com:8080‘})

      null_proxy_handler = urllib2.ProxyHandler({})

      if enable_proxy:

        opener = urllib2.build_opener(proxy_handler)

      else:

         opener = urllib2.build_opener(null_proxy_handler)

      urllib2.install_opener(opener)

  出错处理:

  cookie:

  以及一个爬虫的例子:

#!/usr/bin/env python
# -*- coding:utf-8 -*-
#!/usr/bin/env python # -*- coding: utf-8 -*-
"""
Created on Tue Mar 22 19:44:06 2016

@author: mz
"""

import urllib
import re
import urllib2

page = 2
url = ‘http://www.qiushibaike.com/hot/page/‘ + str(page)
user_agent = ‘Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)‘
headers = { ‘User-Agent‘ : user_agent }

try:
    request = urllib2.Request(url, headers = headers)
    response = urllib2.urlopen(request)
    content = response.read().decode(‘utf-8‘)
    #pattern = re.compile(‘<div class="author clearfix>.*?title="(.*?)">\n<h2>.*?"content">(.*?)\n<!--.*?<span class="stats-vote"<i class="number">(*?)</i>\s[\u4e00-\u9fa5][\u4e00-\u9fa5].*?tagert="_blank">\n<i class="number">(.*?)</i>\s[\u4e00-\u9fa5][\u4e00-\u9fa5]\n</a>‘,re.S)
    pattern = re.compile(‘<div class="author clearfix">.*?title.*?>\n<h2>(.*?)</h2>.*?<div class="content">(.*?)<!--.*?-->.*?<span class="stats-vote"><i class="number">(.*?)</i>.*?<span class="dash">.*?<i class="number">(.*?)</i>.*?‘,re.S)
    items = re.findall(pattern,content)
    for item in items:
        print item[0],item[1],item[2],item[3]
    print "no"
except urllib2.URLError,e:
    if hasattr(e,‘code‘):
        print e.code
    if hasattr(e,‘reason‘):
        print e.reason
时间: 2024-12-28 21:59:03

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吸引人的地方在于