前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python自学笔记——糗事百科段子爬取

python自学笔记——糗事百科段子爬取

作者头像
企鹅号小编
发布2018-01-31 16:22:27
5220
发布2018-01-31 16:22:27
举报
文章被收录于专栏:编程编程

# -*- coding: utf-8 -*-

"""

Created on Thu Dec 21 14:27:16 2017

@author: Andrew

"""

########################爬取内容包括:用户、段子内容、段子对应的好笑数

import urllib.request

import re

def getcontent(url,page):

#模拟成浏览器

headers=("User-Agent","Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36")

opener.addheaders = [headers]

#将opener安装为全局

#构建对应用户提取的正则表达式

userpat='(.*?)'

#构建段子内容提取的正则表达式

contentpat='

(.*?)

'

#构建觉得段子好笑的数量

haoxiaopat='(\d*)\s*好笑'

#寻找出所有的用户,有换行符就用re.S:修改模式

userlist=re.compile(userpat,re.S).findall(data)

#寻找出所有的内容

contentlist=re.compile(contentpat,re.S).findall(data)

#村找出所有的觉得好笑的数量

haoxiaolist=re.compile(haoxiaopat,re.S).findall(data)

x=1

for content in contentlist:

content=content.replace("\n","")

#用字符串作为变量名,先将对应字符串赋给一个变量

name="content"+str(x)

#通过exec()函数实现用字符串作为变量名并赋值

exec(name+'=content')

x+=1

y=1

z=0

for user in userlist:

#筛选出好笑数大于200的段子

if int(haoxiaolist[z])>200:

print("好笑:"+str(haoxiaolist[z]))

name="content"+str(y)

print(" 用户 "+str(page)+str(y)+" 是:"+user)

print("内容是:")

exec("print("+name+")")

print("\n")

y=y+1

z=z+1

else:

z=z+1

#分别获取各页的段子,通过for循环可以获取多页

for i in range(1,2):

url="http://www.qiushibaike.com/8hr/page/"+str(i)

getcontent(url,i)

本文来自企鹅号 - 包子馒头铺媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文来自企鹅号 - 包子馒头铺媒体

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档