爬取糗百|测试作业

作者: Mrchw | 来源:发表于2017-05-23 23:41 被阅读27次

主要爬取的糗百文字版,格式比较统一,不需要对图片、视频进行判断。这次爬取只用了标准库,数据提取用了正则表达式。

设置了请求头
user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
headers = {'User-Agent': user_agent}
翻页
for page in range(1,5):

    url = 'http://www.qiushibaike.com/text/page/'+str(page)+'/?s=4984889'
正则表达式

用(.*?)提取数据

pattern = re.compile('<h2>(.*?)</h2>.*?<div class="articleGender (.*?)Icon">(.*?)</div>.*?<div class="content">.*?<span>(.*?)</span>'+
                             '.*?<span class="stats-vote"><i class="number">(.*?)</i>.*?<i class="number">(.*?)</i>',re.S)

匹配了6个数据,正则太掏粪了,容易出错~可以拿来练手

完整代码
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re

user_agent = 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36'
headers = {'User-Agent': user_agent}

for page in range(1,5):
    url = 'http://www.qiushibaike.com/text/page/'+str(page)+'/?s=4984889'
    try:
        #获取源码
        request = urllib2.Request(url,headers = headers)
        response = urllib2.urlopen(request)
        content = response.read().decode('utf-8')
        #正则匹配
        pattern = re.compile('<h2>(.*?)</h2>.*?<div class="articleGender (.*?)Icon">(.*?)</div>.*?<div class="content">.*?<span>(.*?)</span>'+
                             '.*?<span class="stats-vote"><i class="number">(.*?)</i>.*?<i class="number">(.*?)</i>',re.S)
        items = re.findall(pattern,content)
        for item in items:
            print u"第%s页\n作者:%s\t性别:%s\t年龄:%s\n段子内容:%s\n好笑数:%s\t评论数:%s" % (page,item[0],item[1],item[2],item[3],item[4],item[5])
    except urllib2.URLError, e:
        if hasattr(e,"code"):
            print e.code
        if hasattr(e,"reason"):
            print e.reason

输出

输出
正则还有个缺点是容易带入
,还需进行清洗。

相关文章

  • 爬取糗百|测试作业

    主要爬取的糗百文字版,格式比较统一,不需要对图片、视频进行判断。这次爬取只用了标准库,数据提取用了正则表达式。 设...

  • 爬取糗百

    加载全文的时候,需要注意怎么 获取;

  • 爬糗事百科段子

    本人比较喜欢段子,平时也经常上糗百。所以这次作业也想尝试一下爬取糗百的内容。 网站链接:https://www.q...

  • Python 爬虫入门(一)——爬取糗百

    爬取糗百内容 GitHub 代码地址https://github.com/injetlee/Python/blob...

  • 【Python爬虫】糗百-文字版块

    **糗百-文字版块https://www.qiushibaike.com/text/爬取作者信息(头像/昵称/性别...

  • 爬取糗百12-02

    糗事百科

  • Scrapy爬取糗百并存入MySQL

    爬取糗百文字信息,页面比较简单,爬取难度不大,但要先确定其是否是动态加载。在终端输入命令: 却得到这样的显示:Co...

  • Scrapy框架之CrawlSpider操作 2018-11-0

    提问:如果想要通过爬虫程序去爬取”糗百“全站数据新闻数据的话,有几种实现方法?方法一:基于Scrapy框架中的Sp...

  • 1.爬取糗百段子

    python学习笔记 声明:学习笔记主要是根据廖雪峰官方网站python学习学习及博客 #糗百提取一页内容 # -...

  • 使用python爬取糗百段子

    博主CSDN昵称:守护者ly,欢迎大家前去指点最近在自学Python爬虫,写了一个小demo,前来现学现卖!感谢大...

网友评论

    本文标题:爬取糗百|测试作业

    本文链接:https://www.haomeiwen.com/subject/cbqnxxtx.html