博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
豆瓣流行日志400
阅读量:4204 次
发布时间:2019-05-26

本文共 7680 字,大约阅读时间需要 25 分钟。

作为非文艺青年,非技术青年的同学,闲暇(或忙碌但不想做事情的时候)浏览下豆瓣的日志总是种乐趣。发现豆瓣上的好多人很有趣,比如画彩铅的同学,有这样的兴趣真的很幸福。

闲话少说。这里是用python程序统计的豆瓣中喜欢数最多的400篇日志,觉得其中很多比较有趣的内容,所以与大家分享。

注:这是个很简单的抓取程序,准确率会随着抓取时间提高,目前的这个列表肯定非常不完善,而且日志的喜欢数肯定是不断变化的,所以这只是部分比较流行的日志。

豆瓣日志链接见

2012-10-07 09:31:11

日志链接,被喜欢数

15586

10994

10976

9989

9642

8410

8376

7630

7420

7292

7176

7126

7119

7107

6421

6367

6342

6173

5857

5842

5617

5293

5145

5007

4915

4857

4841

4773

4615

4590

4579

4556

4556

4500

4354

4298

4298

4294

4265

4256

4129

4125

4100

3994

3953

3901

3656

3598

3597

3573

3500

3471

3443

3367

3223

3205

3189

3148

3140

3132

3131

3128

3081

3066

2990

2957

2936

2929

2869

2846

2786

2762

2657

2646

2640

2632

2622

2620

2558

2540

2529

2486

2472

2466

2448

2433

2426

2396

2377

2369

2338

2336

2329

2328

2327

2290

2287

2276

2276

2271

2263

2232

2193

2141

2082

2058

2051

2049

2028

2021

2019

2012

1983

1975

1958

1956

1941

1908

1906

1896

1892

1878

1871

1865

1852

1846

1826

1825

1815

1811

1795

1786

1770

1763

1757

1757

1749

1736

1724

1721

1691

1689

1681

1666

1662

1657

1645

1615

1598

1597

1556

1553

1549

1539

1535

1533

1521

1520

1513

1512

1511

1499

1472

1464

1457

1456

1447

1446

1442

1440

1429

1423

1404

1389

1380

1369

1359

1351

1348

1337

1318

1296

1280

1268

1250

1246

1236

1231

1230

1230

1226

1212

1206

1191

1181

1174

1172

1159

1159

1157

1154

1152

1144

1142

1138

1130

1114

1105

1098

1096

1075

1071

1070

1065

1056

1052

1051

1045

1035

1031

1015

1014

999

994

992

986

978

965

964

961

958

952

947

945

936

935

934

934

931

928

919

911

895

892

880

861

857

853

851

850

849

845

845

843

841

834

832

830

830

820

818

808

802

800

795

793

783

781

780

778

773

769

759

756

753

743

741

740

740

739

733

730

729

727

726

725

719

718

718

717

714

712

711

709

709

704

702

699

694

693

693

689

679

672

669

665

665

645

640

636

632

630

630

626

624

624

607

604

601

601

598

597

595

582

570

569

568

559

559

557

553

543

542

541

539

536

535

533

532

530

520

509

508

508

506

504

503

502

500

495

494

492

483

481

477

477

475

474

473

470

470

467

467

467

466

465

464

460

458

454

452

450

449

444

441

440

438

433

433

433

432

431

430

430

427

426

425

423

423

420

418

416

412

412

411

407

406

405

405

402

Python程序抓取用法: python douban.py > log.txtdouban.py如下:import urllib2import httplib2from BeautifulSoup import BeautifulSoup, SoupStrainerimport re#import Queueimport heapqimport timefrom time import strftimefrom urllib import FancyURLopenerfrom random import choiceuser_agents = [        'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4',    'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11',    'Opera/9.25 (Windows NT 5.1; U; en)',    'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)',    'Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Kubuntu)',    'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.12) Gecko/20070731 Ubuntu/dapper-security Firefox/1.5.0.12',    'Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 GNUTLS/1.2.9']headers = {                'Accept':'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',                'Accept-Charset':'GBK,utf-8;q=0.7,*;q=0.3',                'Accept-Encoding':'gzip,deflate,sdch',                'Accept-Language':'zh-CN,zh;q=0.8,en;q=0.6',                'Cache-Control':'max-age=0',                'Connection':'keep-alive',                'Cookie':'bid="cRcN3O9ZJHU"; dbcl2="2359624:xkxvOaiLLTU"; ck="XxRv"; ll="108288"',                'Host':'www.douban.com',                'User-Agent':'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.79 Safari/537.4'        }class MyOpener(FancyURLopener, object):    version = choice(user_agents)#myopener = MyOpener()#print myopener.open('http://www.douban.com/').read()class PageWithLikes():        def __init__(self, url, numlikes):                self.url = url                self.numlikes = numlikes        def __cmp__(self, other):                return cmp(other.numlikes, self.numlikes)def dumppopular(populars, qsize):        #print "[dumppopular]before: len(populars)", len(populars)        populars.sort()        with open("populars" + str(qsize) + ".txt", "w") as f:                f.write(strftime("%Y-%m-%d %H:%M:%S", time.localtime()) + "\n")                for popular in populars:                        f.write(popular.url + "\t" + str(popular.numlikes) + "\n")        #print "[dumppopular]after: len(populars)", len(populars)#print "qsize: ", populars.qsize()def getpopular(populars, url):        #for url in "http://www.douban.com/note/239090787/", "http://www.douban.com/note/239349810/":        #url = "http://www.douban.com/note/239090787/"        try:                time.sleep(3)                #page = urllib2.urlopen(url)                #soup = BeautifulSoup(page)                print url                visitedurls.add(url[:44])                status, response = http.request(url, headers=headers)                #print status                soup = BeautifulSoup(response, parseOnlyThese=SoupStrainer('span'))                likespan = soup.findAll('span', {"class": "fav-num"})[0]                numlikes = int(re.search('\d+', likespan.contents[1].contents[0]).group())                if int(numlikes) > 400:                        #print url                        #populars.put(PageWithLikes(url, numlikes))                        heapq.heappush(populars, PageWithLikes(url, numlikes))                        qsize = len(populars)                        if qsize % 100 == 0:                                print "qsize: ", qsize                                dumppopular(populars, qsize)        except Exception, e:                print e                passif __name__ == "__main__":        url = "http://www.douban.com"        #noteurls = list()        visitedurls = set()        tovisiturls = [url]        http = httplib2.Http()        notepattern = re.compile("^http://www.douban.com/note/\d+/?$")        #populars = Queue.PriorityQueue(maxsize = 1000)        populars = list()                print strftime("%Y-%m-%d %H:%M:%S", time.localtime())                while len(tovisiturls) > 0 and len(populars) < 1000:                url = tovisiturls.pop()                visitedurls.add(url[:44])                print url                try:                        status, response = http.request(url, headers=headers)                        time.sleep(3)                        #print status                        #print response                        for link in BeautifulSoup(response, parseOnlyThese=SoupStrainer('a')):                                if link.has_key('href'):                                        href = link['href']                                        if href.startswith("http://www.douban.com") and not href.startswith("http://www.douban.com/feed") and href[:44] not in visitedurls:                                                #print href	                                                if re.match(notepattern, href):                                                        tovisiturls.append(href)                                                        #noteurls.append(href)                                                        getpopular(populars, href)                                                elif href.endswith("notes/") or href.endswith("notes"):                                                        tovisiturls.append(href)                                                else:                                                        tovisiturls.insert(0, href)                                                                        except Exception, e:                        print e                        pass

转载地址:http://kxxli.baihongyu.com/

你可能感兴趣的文章
小练习 - 基于链表的栈和队列
查看>>
理论不扎实,编程不会有自己的想法
查看>>
数据库-子查询《mysql子查询的弱点》
查看>>
关于Synchornized,Lock,AtomicBoolean和volatile
查看>>
Private Members In JavaScript(javascript的私有成员)——翻译
查看>>
mvc——web和android
查看>>
数据库的commit以及rollback
查看>>
动态加载JS脚本的4种方法
查看>>
《MySQL必知必会》——MySQL管理事务处理
查看>>
《MySQL必知必会》——笔记
查看>>
《Spring揭秘》——AOP(笔记)
查看>>
《TCP/IP详解卷3》——HTTP(笔记)
查看>>
JVM——main()方法的执行。
查看>>
观止——《从Decorator,Adapter模式看Java/IO库》
查看>>
《Erlang程序设计》——笔记
查看>>
Erlang开发环境Windows+Emacs+Distel配置
查看>>
Erlang的特点——小结
查看>>
Erlang的makefile——小例子
查看>>
蜗牛爬井——Erlang版本
查看>>
《Erlang程序设计》第8章习题解
查看>>