Python爬虫实战:爬糗事百科的段子

本文分享了一次使用Python进行糗事百科爬虫的实践经历,作者通过编写爬虫代码成功抓取了糗事百科的段子,并在此过程中深入学习了正则表达式的应用。虽然在尝试将爬虫与微信公众号结合时遇到了一些挑战,但这次经历为作者提供了宝贵的学习机会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一个偶然的机会接触了Python,感觉很好用,但是一直在看c++啥的,也没系统学习。用过之后也荒废了许久。之前想建个公众号自动爬糗事百科的段子,但是没能建起来,真是尴尬,代码上传的服务器上之后,不能正确回复公众号的消息。

听说微信是有个什么调试功能,但我也不会用,后来就开始考试,给忘了这件事。今天看见了之前学习的糗百的爬虫代码,也算是第一次写,写个帖子纪念一下。

从中还是学习了有关正则表达式的许多知识,不过糗百的网页有时候会更新结构,正则表达式就要从写。。。这个要是能自动生成正则表达式就好了。。。也不知道有没有这样的功能。。。

# -*- coding:utf-8 -*-
import urllib
import urllib2
import re

page = 1
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)
    #data = response.read()
    #data = data.decode('utf-8')

    content = response.read().decode('utf-8')
   #pattern = re.compile('<div.*?author">.*?<a.*?<img.*?>(.*?)</a>.*?<div.*?'+
    #                     'content">(.*?)<!--(.*?)-->.*?</div>(.*?)<div class="stats.*?class="number">(.*?)</i>',re.S)


    pattern = re.compile('<div class="author clearfix">.*?<a href.*?title=.*?<h2>(.*?)</h2>.*?<div class="content".*?span>(.*?)</.*?div>.*?<i class="number">(.*?)</i>',re.S)

    items = re.findall(pattern,content)
    for item in items:
            #haveImg = re.search("img",item[3])
            #if not haveImg:
                print u"发布者:"+item[0],u"点赞数"+item[2]
                print u"内容:"+item[1]
                print " "
   # print data
except urllib2.URLError, e:
    if hasattr(e,"code"):
        print e.code
    if hasattr(e,"reason"):
        print e.reason

结果

没正确处理图片和视频。。。

转载于:https://www.cnblogs.com/HsinTsao/p/6533246.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值