Python3爬虫【壹】静态网页

1、包

1、在python3中,urllib和urllib2合并为urllib.request和urllib.parse。
2、同时需要使用bs4(BeautifulSoup)包对已经抓取的网页进行筛选。

2、函数

  1. urlopen函数。使用urllib.request包中的urlopen(url, [timeout])打开网页。但需注意如果网页不存在或者无法访问,函数会抛出异常,所以打开部分的函数需要在try…except…模块中调用。
  2. BeautifulSoup函数。BeautifulSoup函数返回一个bs4对象,需要使用read()函数再去读取网页。例如bsObj = BeautifulSoup(urlopen(url).read())
    • 可以直接访问bsObj的子元素如bsObj.h1bsObj.p等。
    • findAllfind函数。findAll(tag, attributes, recursive, text, limit, keywords)find(tag, attributes, recursive, text, keywords)用来寻找网页代码中所需要的代码块。
    • get_text()函数。get_text()函数,用于获取已获取的代码块中的内容。
    • children对象,使用children获取当前结点下所有的子节点。(注意这里的子节点定义与以往不大一样)
    • next_siblings对象,类似于children,返回所有兄弟结点。与之类似的还有parentparents对象。
    • 正则表达式。再urllib.request 包中,可以调用BeautifulSoupimportre用以使用正则表达式对数据进行筛选。

示例代码:

import urllib.parse
from urllib.error import HTTPError
from bs4 import BeautifulSoup

def getPages(url): #获取所需要的网页
    try:
        page = urlopen(url, timeout = 100)
    except HTTPError as e:
        print(e)
    except socket.timeout as e: 
        print(e)
    else:
        if page is None:
            print(url + 'is not find')
        else:
            returnObj = BeautifulSoup(page.read())
        return returnObj
    return None

def loadPages(url): #循环强制获取网页防止访问超时对数据采集造成损失
    while True:
        print('Is downloading on ' + url)
        try:
            html = getPages(url)
        except BaseException as e:
            continue
        else:
            return html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值