【python】使用python做一个简单爬虫

爬虫的步骤如下:

1.获取数据

2.筛选数据

3.保存数据

4.显示数据

在这里我们主要使用urllib2库来对网页进行爬取,本次我们爬取的参考网站是:

http://www.jokeji.cn/jokehtml/ymww/2017091320204399.htm

我们可以观察内容:


发现正文的内容都在<span id="text110"></span>这个标签内,所以我们可以通过正则筛选出内容

正则内容如下:

pattern = re.compile(r'<span.*?id="text110">(.*?)</span>',re.S)

然后再将其中的<p></p><br>等标签替换掉

item = item.replace("<P>","").replace("</P>","").replace("<BR>","")

代码如下:

# -*- encoding:utf-8 -*-

import urllib2
import re

class Spider:
    """
        笑话大全爬虫类
        http://www.jokeji.cn/jokehtml/ymww/2017091320204399.htm
    """
    def loadPage(self,page):
        """
        @brief 定义一个url请求网页的方法
        @param page 需要请求的第几页
        @returns 返回的页面html
        :param page:
        :return:
        """
        url = "http://www.jokeji.cn/jokehtml/ymww/2017091320204399.htm"
        headers = {"User-Agent":"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT6.1; Trident/5.0"}
        req = urllib2.Request(url,headers = headers)
        resp = urllib2.urlopen(req)
        html = resp.read()
        gbk_html = html.decode('gbk').encode('utf-8')
        # print(gbk_html)
        # 找到内容 <span id="text110"></span>
        # re.S 如果没有re.S 则是只匹配一行有没有符合规则的字符串,如果没有则下一行重新匹配
        # 如果加上re.S 则是将所有的字符串将一个整体进行匹配
        pattern = re.compile(r'<span.*?id="text110">(.*?)</span>',re.S)
        item_list = pattern.findall(gbk_html)
        return item_list

    def printOnePage(self,item_list):
        print("******打印爬虫获取到的数据******")
        for item in item_list:
            item = item.replace("<P>","").replace("</P>","").replace("<BR>","")
            print("="*20)
            print(item)

if __name__ == '__main__':
    """
        爬虫
    """

    # 创建一个对象
    mySpider = Spider()
    item_list = mySpider.loadPage(1)
    mySpider.printOnePage(item_list)


运行结果如下:





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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值