首页 新闻 会员 周边

爬取糗事百科上的段子和内容,运行出错,求指出代码错误之处,不胜感激!

0
[待解决问题]

import re
import urllib.request
def getcontent(url,page):
    #模拟成浏览器
    headers=("User-Agent","mozilla/5.0 (windows NT 6.1;WOW64)AppleWenkit/537.36(KHTML,like Gecko) Chrome/38.02125.122 Safari/537.36 SE 2.X MetaSr 1.0")
    opener= urllib.request.build_opener()
    opener.addheaders=[headers]
     #将opener安装为全局
    urllib.request.install_opener(opener)
    data=urllib.request.urlopen(url).read().decode("utf-8")
    #构建对应用户提取的正则表达式
    userpat='target="_blank" title="(.*? )">'
    #构建段子内容提取的正则表达式
    contentpat='<div class="cotent">(.*? )</div>'
    #寻找出所有的用户
    userlist=re.compile(userpat,re.S).findall(data)
    #寻找出所有的内容
    contentlist=re.compile(contentpat,re.S).findall(data)
    x=1
    #通过for循环遍历段子内容并将内容分别赋给对应的变量
    for content in contentlist:
        content=content.replace("\n","")
        #用字符串走位变量名,先将对应字符串先赋给一个变量
        name="content"+str(x)
        #通过exec()函数实现用字符串作为变量名并赋值
        exec(name+'=content')
        x+=1
    y=1
    #通过for循环遍历用户,并输出该用户对应的内容
    for user in userlist:
        name="content"+str(y)
        print("用户"+str(page)+str(y)+"是:"+user)
        print("内容是:")
        print("\n")
        y+=1
#分别获取各页的段子,通过for循环可以获取多页
for i in range(1,30):
    url="http://www.qiushibaike.com/8hr/page/"+str(i)
    getcontent(url,i)

LouieZhang的主页 LouieZhang | 菜鸟二级 | 园豆:202
提问于:2017-08-10 09:40
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册