简单的爬虫入门

开发轻量级的爬虫,不需要登录的静态网页的爬取:

1,爬虫的简介:

啊,这个地方 爬虫的定义啥的就不多讲了,反正它的的功能啥的是很强大的,主要就是对网络上的数据的爬取,然后对于爬取的数据可用于多方用途;用一句话就是:"互联网数据,为我所用  --慕课网某老师"

2,简单的爬虫架构:


恩,就是图片中的各个部分:

3,url管理器的实现方法:

*实现方式:

1,内存:

                   python内存;

等待爬取的URL集合:set()

已经爬取的URL集合:set()

 

 

2,关系数据库

                    MySQL

urls(url, is _crawled)

 

 

3,缓存数据库

                    redis

等待爬取的URL集合:set

已经爬取的URL集合:set


4,网页下载器:

*urllib2下载网页方法1:最简洁的方法

 

import urllib2

 

# 直接请求

response= urllib2.urlopen('http://www.baidu.com')

 

# 获取状态码,如果是200表示获取成功

Printresponse.getcode()

 

# 读取内容

cout = response.read()

 

 

 

 

*urllib2下载网页方法2:添加data http header

 

import urllib2

 

#创建Request对象

request = urllib2.Request(ur1)

 

#添加数据

request.add_data('a','1')

 

#添加httpheader

request.add.header('user-Agent','Mozilla/5.0')

 

 

 

*urllib2下载网页方法3 :添加特殊情景的处理器

 

#增强cookie的处理

import urllib2, cookielib

 

#创建cookie容器

cj =cookielib.CookieJar()

 

#创建一个opener

opener =urllinb2.build_opener(urllib2.HTTPCookieProcessor(cj))

 

#使用带有cookieurllib2访问网页

response = urllib2.urlopen("http://www.baidu.com/")




5,网页解析器;

Python4种网页解析器

201721

22:50

*正则表达式:

1:将网页文档作为一个字符串,然后通过模糊匹配的方式来提取出有价值的数据。

2:优点;直观。

 

3:缺点;如果文档比较复杂的话,这种方法非常的麻烦。

 

*python自带的html,parser模块来解析网页:

 

*第三方插件BeautifulSoup解析网页:

#可以使用html,parser模块和Ixml解析器来解析网页

#BeautifulSoup语法:

&   创建BeautifulSoup的对象,--->搜索find_allfind--->访问节点名称<a>,属性(href='123.html',class='artice_link'),文字(节点内容:Python)

&    代码:

frombs4 import BeautifulSoup

import re

 

#根据HTml网页字符串创建BeautifulSoup对象

soup = BeautifulSoup(

                                    html_doc,                     # HTML文档字符串

                                    'html.parser'                 # HTML解析器

                                    from_encoding = 'utf8'# HTML文档的编码

                                    )

 

#搜索节点(find_all,find  方法:find_all(name, attrs, string)

#查找所有标签为a的节点

soup.find_all('a')

#查找所有标签为a,链接符合/view/123.html形式的节点

soup.find_all('a', href = '/view/123.html')

soup.find_all('a', href = re,compile(r'/view/\d+\.html') )

 

#查找所有标签为div, classabc 文字为Python的节点

soup.find_all('div', class_='abc',  string = 'python' )

 

#访问节点信息   得到节点:<a hef ='1.html'>python</a>

#获取查找到的节点的标签的名称

node.name

#获取查找到的节点的href属性

node['href']

#获取查找到的a节点的链接文字

node.get_text()

 

 

*第三方插件Ixml解析html网页或者xml网页

#3种方法是一种结构化的解析,第一种是字符串的模糊匹配


利用beautifulSoup模块解析网页内容的3种方法


6,实例爬虫--分析目标

源码在这里哦

词条页面URL/view/125370.htm

  • 数据结构

标题:

        * <ddclass ="lemmaWagt-lemmaTitle-title"><h1>***<h1></dd>

简介:

        *<divclass = "lemma-summary">***<div>

    • 页面编码:utf-8

    • 0
      点赞
    • 0
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值