欢迎来到 黑吧安全网 聚焦网络安全前沿资讯,精华内容,交流技术心得!

爬虫实战1--抓取糗事百科段子

来源:本站整理 作者:佚名 时间:2017-08-19 TAG: 我要投稿

1提取某一页所有段子
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re

page = 1
url = 'http://www.qiushibaike.com/hot/page/' + str(page)
user_agent = 'haha/4.0 (compatible; MSIE 5.5; Windows NT)'
headers = { 'User-Agent' : user_agent }
try:
    request = urllib2.Request(url,headers = headers)
    response = urllib2.urlopen(request)
    content = response.read().decode('utf-8')
    pattern=re.compile('h2>(.*?)</h2.*?<span>(.*?)</.*?number">(.*?)</.*?number">(.*?)<', re.S)
    items = re.findall(pattern,content)
    for item in items:
        print u"----------------------------------------\n发布人:%s内容:%s赞:%s\t评论数:%s\n"%(item[0],item[1],item[2],item[3])

except urllib2.URLError, e:
    if hasattr(e,"code"):
        print e.code
    if hasattr(e,"reason"):
        print e.reason
2.完善交互
按下回车,读取一个段子,显示出段子的发布人,内容,评论个数,点赞个数。
# -*- coding:utf-8 -*-
import urllib
import urllib2
import re
import thread
import time

class QSBK:
        def __init__(self):
                self.pageIndex = 1
                #初始化 ua
                self.user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
                #初始化 headers
                self.headers = { 'user-Agent' : self.user_agent }
                #存放段子
                self.stories = []
                #是否继续运行
                self.enable = False
        #根据索引获得页面代码
        def getPage(self,pageIndex):
                try:
                        url = 'http://www.qiu' \
                              'shibaike.com/hot/page' + str(pageIndex)
                        #构建请求request
                        request = urllib2.Request(url,headers = self.headers)
                        #利用urlopen获取页面代码
                        response = urllib2.urlopen(request)
                        #将页面转化为UTF-8编码
                        pageCode = response.read().decode('utf-8')
                        return pageCode
                except urllib2.URLError,e:
                        if hasattr(e,"reason"):
                            print u"连接失败,错误原因",e.reason
                            return None

[1] [2] [3]  下一页

【声明】:黑吧安全网(http://www.myhack58.com)登载此文出于传递更多信息之目的,并不代表本站赞同其观点和对其真实性负责,仅适于网络安全技术爱好者学习研究使用,学习中请遵循国家相关法律法规。如有问题请联系我们,联系邮箱admin@myhack58.com,我们会在最短的时间内进行处理。
  • 最新更新
    • 相关阅读
      • 本类热门
        • 最近下载