当前位置:首页 > 代码 > 正文

豆瓣网的源代码(代码大全 豆瓣)

admin 发布:2022-12-19 19:34 180


本篇文章给大家谈谈豆瓣网的源代码,以及代码大全 豆瓣对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

豆瓣网站源码里面的after是怎么用

进入设置效果点击:控制面板个人首页维护自定义空白面板新增空白面板,命名‘豆瓣’,勾选源代码,把以下代码粘贴到独立合适的位置,保存。第二步,进行定制首页模块:控制面板定制首页的内容模块添加,勾选“豆瓣”,点击下方的选取按钮,保存定制首页模块。完成。如果豆瓣提供的调用,那就需要做一个页,然后采用iframe嵌入。也可以前面再加一些,不过这样要快速一次完成。

如何用python爬取豆瓣读书的数据

这两天爬了豆瓣读书的十万条左右的书目信息,用时将近一天,现在趁着这个空闲把代码总结一下,还是菜鸟,都是用的最简单最笨的方法,还请路过的大神不吝赐教。

第一步,先看一下我们需要的库:

import requests                       #用来请求网页

from bs4 import BeautifulSoup         #解析网页

import time          #设置延时时间,防止爬取过于频繁被封IP号

import re            #正则表达式库

import pymysql       #由于爬取的数据太多,我们要把他存入MySQL数据库中,这个库用于连接数据库

import random        #这个库里用到了产生随机数的randint函数,和上面的time搭配,使爬取间隔时间随机

这个是豆瓣的网址:x-sorttags-all

我们要从这里获取所有分类的标签链接,进一步去爬取里面的信息,代码先贴上来:

import requests

from bs4 import BeautifulSoup       #导入库

url="httom/tag/?icn=index-nav"

wb_data=requests.get(url)                #请求网址

soup=BeautifulSoup(wb_data.text,"lxml")  #解析网页信息

tags=soup.select("#content div div.article div div table tbody tr td a")

#根据CSS路径查找标签信息,CSS路径获取方法,右键-检查-copy selector,tags返回的是一个列表

for tag in tags:

tag=tag.get_text()    #将列表中的每一个标签信息提取出来

helf="hom/tag/"

#观察一下豆瓣的网址,基本都是这部分加上标签信息,所以我们要组装网址,用于爬取标签详情页

url=helf+str(tag)

print(url)    #网址组装完毕,输出

以上我们便爬取了所有标签下的网址,我们将这个文件命名为channel,并在channel中创建一个channel字符串,放上我们所有爬取的网址信息,等下爬取详情页的时候直接从这里提取链接就好了,如下:

channel='''

tag/程序

'''

现在,我们开始第二个程序。

QQ图片20160915233329.png

标签页下每一个图片的信息基本都是这样的,我们可以直接从这里提取到标题,作者,出版社,出版时间,价格,评价人数,以及评分等信息(有些外国作品还会有译者信息),提取方法与提取标签类似,也是根据CSS路径提取。

我们先用一个网址来实验爬取:

url="htt/tag/科技"

wb_data = requests.get(url)

soup = BeautifulSoup(wb_data.text.encode("utf-8"), "lxml")

tag=url.split("?")[0].split("/")[-1]    #从链接里面提取标签信息,方便存储

detils=soup.select("#subject_list ul li div.info div.pub")  #抓取作者,出版社信息,稍后我们用spite()函数再将他们分离出来

scors=soup.select("#subject_list ul li div.info div.star.clearfix span.rating_nums")   #抓取评分信息

persons=soup.select("#subject_list ul li div.info div.star.clearfix span.pl")    #评价人数

titles=soup.select("#subject_list ul li div.info h2 a")   #书名

#以上抓取的都是我们需要的html语言标签信息,我们还需要将他们一一分离出来

for detil,scor,person,title in zip(detils,scors,persons,titles):

#用一个zip()函数实现一次遍历

#因为一些标签中有译者信息,一些标签中没有,为避免错误,所以我们要用一个try来把他们分开执行

try:

author=detil.get_text().split("/",4)[0].split()[0]     #这是含有译者信息的提取办法,根据“/”  把标签分为五部分,然后依次提取出来

yizhe= detil.get_text().split("/", 4)[1]

publish=detil.get_text().split("/", 4)[2]

time=detil.get_text().split("/", 4)[3].split()[0].split("-")[0]   #时间我们只提取了出版年份

price=ceshi_priceone(detil)        #因为价格的单位不统一,我们用一个函数把他们换算为“元”

scoe=scor.get_text() if True else ""    #有些书目是没有评分的,为避免错误,我们把没有评分的信息设置为空

person=ceshi_person(person)      #有些书目的评价人数显示少于十人,爬取过程中会出现错误,用一个函数来处理

title=title.get_text().split()[0]  

#当没有译者信息时,会显示IndexError,我们分开处理

except IndexError:

try:

author=detil.get_text().split("/", 3)[0].split()[0]

yizhe=""         #将detil信息划分为4部分提取,译者信息直接设置为空,其他与上面一样

publish=detil.get_text().split("/", 3)[1]

time=detil.get_text().split("/", 3)[2].split()[0].split("-")[0]

price=ceshi_pricetwo(detil)

scoe=scor.get_text() if True else ""

person=ceshi_person(person)

title=title.get_text().split()[0]

except (IndexError,TypeError):

continue  

#出现其他错误信息,忽略,继续执行(有些书目信息下会没有出版社或者出版年份,但是数量很少,不影响我们大规模爬取,所以直接忽略)

except TypeError:

continue

#提取评价人数的函数,如果评价人数少于十人,按十人处理

def ceshi_person(person):

try:

person = int(person.get_text().split()[0][1:len(person.get_text().split()[0]) - 4])

except ValueError:

person = int(10)

return person

#分情况提取价格的函数,用正则表达式找到含有特殊字符的信息,并换算为“元”

def ceshi_priceone(price):

price = detil.get_text().split("/", 4)[4].split()

if re.match("USD", price[0]):

price = float(price[1]) * 6

elif re.match("CNY", price[0]):

price = price[1]

elif re.match("\A$", price[0]):

price = float(price[1:len(price)]) * 6

else:

price = price[0]

return price

def ceshi_pricetwo(price):

price = detil.get_text().split("/", 3)[3].split()

if re.match("USD", price[0]):

price = float(price[1]) * 6

elif re.match("CNY", price[0]):

price = price[1]

elif re.match("\A$", price[0]):

price = float(price[1:len(price)]) * 6

else:

price = price[0]

return price

实验成功后,我们就可以爬取数据并导入到数据库中了,以下为全部源码,特殊情况会用注释一一说明。

import requests

from bs4 import BeautifulSoup

import time

import re

import pymysql

from channel import channel   #这是我们第一个程序爬取的链接信息

import random

def ceshi_person(person):

try:

person = int(person.get_text().split()[0][1:len(person.get_text().split()[0]) - 4])

except ValueError:

person = int(10)

return person

def ceshi_priceone(price):

price = detil.get_text().split("/", 4)[4].split()

if re.match("USD", price[0]):

price = float(price[1]) * 6

elif re.match("CNY", price[0]):

price = price[1]

elif re.match("\A$", price[0]):

price = float(price[1:len(price)]) * 6

else:

price = price[0]

return price

def ceshi_pricetwo(price):

price = detil.get_text().split("/", 3)[3].split()

if re.match("USD", price[0]):

price = float(price[1]) * 6

elif re.match("CNY", price[0]):

price = price[1]

elif re.match("\A$", price[0]):

price = float(price[1:len(price)]) * 6

else:

price = price[0]

return price

#这是上面的那个测试函数,我们把它放在主函数中

def mains(url):

wb_data = requests.get(url)

soup = BeautifulSoup(wb_data.text.encode("utf-8"), "lxml")

tag=url.split("?")[0].split("/")[-1]

detils=soup.select("#subject_list ul li div.info div.pub")

scors=soup.select("#subject_list ul li div.info div.star.clearfix span.rating_nums")

persons=soup.select("#subject_list ul li div.info div.star.clearfix span.pl")

titles=soup.select("#subject_list ul li div.info h2 a")

for detil,scor,person,title in zip(detils,scors,persons,titles):

l = []  #建一个列表,用于存放数据

try:

author=detil.get_text().split("/",4)[0].split()[0]

yizhe= detil.get_text().split("/", 4)[1]

publish=detil.get_text().split("/", 4)[2]

time=detil.get_text().split("/", 4)[3].split()[0].split("-")[0]

price=ceshi_priceone(detil)

scoe=scor.get_text() if True else ""

person=ceshi_person(person)

title=title.get_text().split()[0]

except IndexError:

try:

author=detil.get_text().split("/", 3)[0].split()[0]

yizhe=""

publish=detil.get_text().split("/", 3)[1]

time=detil.get_text().split("/", 3)[2].split()[0].split("-")[0]

price=ceshi_pricetwo(detil)

scoe=scor.get_text() if True else ""

person=ceshi_person(person)

title=title.get_text().split()[0]

except (IndexError,TypeError):

continue  

except TypeError:

continue

l.append([title,scoe,author,price,time,publish,person,yizhe,tag])

#将爬取的数据依次填入列表中

sql="INSERT INTO allbooks values(%s,%s,%s,%s,%s,%s,%s,%s,%s)"  #这是一条sql插入语句

cur.executemany(sql,l)   #执行sql语句,并用executemary()函数批量插入数据库中

conn.commit()

#主函数到此结束

# 将Python连接到MySQL中的python数据库中

conn = pymysql.connect( user="root",password="123123",database="python",charset='utf8')

cur = conn.cursor()

cur.execute('DROP TABLE IF EXISTS allbooks')   #如果数据库中有allbooks的数据库则删除

sql = """CREATE TABLE allbooks(

title CHAR(255) NOT NULL,

scor CHAR(255),

author CHAR(255),

price CHAR(255),

time CHAR(255),

publish CHAR(255),

person CHAR(255),

yizhe CHAR(255),

tag CHAR(255)

)"""

cur.execute(sql)  #执行sql语句,新建一个allbooks的数据库

start = time.clock()   #设置一个时钟,这样我们就能知道我们爬取了多长时间了

for urls in channel.split():

urlss=[urls+"?start={}type=T".format(str(i)) for i in range(0,980,20)]   #从channel中提取url信息,并组装成每一页的链接

for url in urlss:

mains(url)       #执行主函数,开始爬取

print(url)        #输出要爬取的链接,这样我们就能知道爬到哪了,发生错误也好处理

time.sleep(int(format(random.randint(0,9))))   #设置一个随机数时间,每爬一个网页可以随机的停一段时间,防止IP被封

end = time.clock()

print('Time Usage:', end - start)    #爬取结束,输出爬取时间

count = cur.execute('select * from allbooks')

print('has %s record' % count)       #输出爬取的总数目条数

# 释放数据连接

if cur:

cur.close()

if conn:

conn.close()

这样,一个程序就算完成了,豆瓣的书目信息就一条条地写进了我们的数据库中,当然,在爬取的过程中,也遇到了很多问题,比如标题返回的信息拆分后中会有空格,写入数据库中会出现错误,所以只截取了标题的第一部分,因而导致数据库中的一些书名不完整,过往的大神如果有什么办法,还请指教一二。

等待爬取的过程是漫长而又欣喜的,看着电脑上一条条信息被刷出来,成就感就不知不觉涌上心头;然而如果你吃饭时它在爬,你上厕所时它在爬,你都已经爬了个山回来了它还在爬时,便会有点崩溃了,担心电脑随时都会坏掉(还是穷学生换不起啊啊啊啊~)

所以,还是要好好学学设置断点,多线程,以及正则,路漫漫其修远兮,吾将上下而求索~共勉~

电影《源代码》结局什么意思?

现实中,主角本来的身体就只剩下了半截,靠维生设备维持着脑波之类的东西。那个瘸子科学家就用这点仅存的脑波进行试验。在火车上的是另外一个人,可能他们的脑波频率等很多特征都接近,就借用了他的身体去解除炸弹。

由于平行理论,火车上的人在另外一个平行空间还活着。当主角的半截身体还活着时,主角的思维已经在火车上那个人身上了,切断维持半截身体的供给,半截身体死亡,主角的灵魂或思维就寄存在了火车上那个人身上了,以那个人的身份生活下去了。

扩展资料

影片《源代码》是由邓肯·琼斯执导,杰克·吉伦哈尔、维拉·法米加、米歇尔·莫娜汉等人联袂出演。影片于2011年4月1日在美国上映。

影片讲述了一位在阿富汗执行任务的美国空军飞行员柯尔特·史蒂文斯,醒来时发现自己正处在一辆前往芝加哥的火车上,并就此经历的一系列惊心动魄的事件。

“咚,咚”“呼,呼”,急促的心跳声和喘息声震耳欲聋。一切都开始模糊,继而扭曲变形。然后,一阵尖锐的火车汽笛声,将柯尔特·斯蒂文斯上尉(杰克·吉伦哈尔 饰演)拉回了现实。窗外,是疾驰倒退的绿地。坐在他对面的女子(米歇尔·莫娜汉 饰演)疑惑地看着走神的他,又继续着话题,柯尔特突然觉得头皮发麻。

柯尔特意识到只有一种方法可以证明真相。他冲向洗手间,直愣愣地盯着里面的镜子,出现在镜子里的人,是一个身着呢子大衣、蓝色衬衫,眼中带着几分惊恐的中年男子。不是他自己,至少不是他印象中的自己。还没等他惊魂落定,一股强大的爆炸气流袭来,整列列车在烈火中被炸成碎片。猛然睁开双眼,柯尔特惊疑地看着四周,他发现自己身处一个独立的空间里,穿着本就属于他的军服。

参考资料源代码(美国2011年杰克·吉伦哈尔主演科幻片)百度百科

谁有豆瓣网的源码啊

!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" ""

html xmlns=""

head

title

豆瓣

/title

meta http-equiv="Content-Type" content="text/html; charset=utf-8" /

meta http-equiv="Pragma" content="no-cache" /

meta http-equiv="Expires" content="Sun, 6 Mar 2005 01:00:00 GMT" /

meta content="提供图书、电影、音乐唱片的推荐、评论和价格比较,以及城市独特的文化生活。" name="description"/

meta name="google-site-verification" content="xFZT7kAiT6BneZzRQdbBNYLrgylmrMHECP5lfsORqhc" /

script type="text/javascript" src=""/script

link rel="shortcut icon" href="" type="image/x-icon" /

link href="" rel="stylesheet" type="text/css" /

link href="" rel="stylesheet" type="text/css" /

script type="text/javascript" src=""/script

script type="text/javascript" src=""/script

style type="text/css"

.anony-nav { margin-bottom:20px; }

.anony-nav .hd a:link,

.anony-nav .hd a:visited,

.anony-nav .hd a:hover,

.anony-nav .hd a:active { background-color:transparent; }

.anony-nav .hd { height:74px; }

.anony-nav .hd,

.anony-nav .bd { clear:both;width:950px;margin:0 auto; }

#db-sidesrh { float:left;margin-bottom:20px; }

#db-sidesrh:after,

.anony-nav .hd:after,

.anony-nav .bd:after,

.anony-nav .login .item:after { content:'\0020';display:block;clear:both; }

.anony-nav .logo { float:left;margin-top:23px; }

.anony-nav .logo a { display:block;width:168px;height:34px;background:transparent;overflow:hidden;line-height:10em;background:url() no-repeat 0 -3px; }

.anony-nav .top-nav-items { float:right;margin:37px 0 0 0;}

.anony-nav .top-nav-items li { margin:0 0 0 44px; }

.anony-nav a.lnk-book:link,

.anony-nav a.lnk-book:visited,

.anony-nav a.lnk-book:hover,

.anony-nav a.lnk-book:active,

.anony-nav a.lnk-movie:link,

.anony-nav a.lnk-movie:visited,

.anony-nav a.lnk-movie:hover,

.anony-nav a.lnk-movie:active,

.anony-nav a.lnk-music:link,

.anony-nav a.lnk-music:visited,

.anony-nav a.lnk-music:hover,

.anony-nav a.lnk-music:active,

.anony-nav a.lnk-9:link,

.anony-nav a.lnk-9:visited,

.anony-nav a.lnk-9:hover,

.anony-nav a.lnk-9:active,

.anony-nav a.lnk-srh:link,

.anony-nav a.lnk-srh:visited,

.anony-nav a.lnk-srh:hover,

.anony-nav a.lnk-srh:active { display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;width:100px;height:24px;overflow:hidden;line-height:10em;background:transparent url() no-repeat -177px 0;vertical-align:text-bottom; }

.anony-nav a.lnk-srh:link,

.anony-nav a.lnk-srh:visited,

.anony-nav a.lnk-srh:hover,

.anony-nav a.lnk-srh:active { width:14px;height:14px;margin-left:5px;background-position:0 -48px; }

.anony-nav a.lnk-movie:link,

.anony-nav a.lnk-movie:visited,

.anony-nav a.lnk-movie:hover,

.anony-nav a.lnk-movie:active { background-position: -283px 0; }

.anony-nav a.lnk-music:link,

.anony-nav a.lnk-music:visited,

.anony-nav a.lnk-music:hover,

.anony-nav a.lnk-music:active { background-position: -385px 0; }

.anony-nav a.lnk-9:link,

.anony-nav a.lnk-9:visited,

.anony-nav a.lnk-9:hover,

.anony-nav a.lnk-9:active { width:80px;background-position: -485px 0; }

.anony-nav fieldset { border:0;padding:0;margin:0; }

.anony-nav legend { display:none; }

.anony-nav .reg { float:left;position:relative;width:590px;height:134px;font-size:14px;color:#666;line-height:1.6;background:#e9eef2 url() no-repeat -12px 0; }

.anony-nav .reg div { padding:22px 0 18px 0; }

.anony-nav .reg strong { float:left;width:200px;height:80px;text-align:center;font-size:24px;padding-top:46px; }

.anony-nav .reg em { font-size:12px;font-style:normal;color:#666; }

.anony-nav .reg b { font-size:16px;font-weight:400;margin-right:5px; }

a.lnk-reg:link,

a.lnk-reg:visited,

a.lnk-reg:hover,

a.lnk-reg:active { display:-moz-inline-box;display:inline-block;*display:inline;zoom:1;font-size:12px;text-align:left;width:130px;height:27px;line-height:28px;color:#fff;background:url() no-repeat -120px -48px; }

.anony-nav .reg .lnk-reg strong { float:none;color:#fff;padding:0;font-size:16px;font-weight:400;margin:0 10px 0 16px; }

.anony-nav .login { float:right;width:356px;height:134px;font-size:14px;background:#e9eef2 url() no-repeat 348px 0; }

.anony-nav .login form { position:relative;padding:23px 0 0 20px;padding:16px 0 0 20px\9; }

.anony-nav .item label { float:left;width:4em; }

.anony-nav .item input { border:1px solid #ccc;width:200px;padding:3px 2px; }

.anony-nav .login .item { margin-bottom:10px; }

.anony-nav .login .item a { font-size:12px; }

.anony-nav .login .item1 { float:left;font-size:12px;margin:0 20px 10px 0;color:#666; }

.anony-nav .login .item1 label { display:-moz-inline-box;display:inline-block;display:inline\9;*zoom:1;margin-left:4.5em;margin-top:4px; }

.anony-nav .login .item1 label input { *float:left;margin-right:2px\9;_margin-right:-4px; }

.anony-nav .bn-submit { width:80px;height:28px;color:#FFF;font-size:14px;line-height:28px;padding-bottom:3px;padding:0\9;border:none;background:transparent url() no-repeat -23px -48px;cursor:pointer; }

#nav-vsrh-bn { position:absolute;width:29px;height:25px;overflow:hidden;line-height:10em;background:url() no-repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='', sizingMethod='scale'); }

#nav-vsrh { position:absolute;width:211px;height:50px; }

#nav-vsrh .bd { height:47px;color:#fff;background:url() no-repeat; }

#nav-vsrh form { padding:5px 10px; }

#nav-vsrh .search-btn,

.anony-nav .vsrh { display:none; }

#nav-vsrh input { width:94%; }

#nav-vsrh .option input { width:auto; }

#nav-vsrh .x1 { position:absolute;left:209px;top:0;width:2px;height:47px;overflow:hidden;background:url() no-repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='', sizingMethod='scale');}

#nav-vsrh .x2 { position:absolute;top:47px;left:0;width:211px;height:3px;overflow:hidden;background:url() no-repeat;_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='', sizingMethod='scale');}

#nav-vsrh .wrapinp { padding:12px 10px;}

.wrapinp input{ padding:2px; }

#page_focus { width:220px;}

.intro1 { padding:8px 2px 0 8px;line-height:1.4; }

.movie_headerline ul.menu li,

.movie_headerline ul.menu li div,

.movie_headerline ul.menu li .on { height:54px;*height:50px !important;_height:42px !important; }

.movie_headerline .content .title:after { content:'\0020';display:block;clear:both;zoom:1;margin-bottom:5px; }

.movie_headerline .content .headerline_img { width:140px; }

.movie_headerline .content .headerline_img img { width:130px; }

.movie_headerline .content .headerline_content { width:250px; }

.anony-nav .nav-tip { position:relative;width:960px;margin:0 auto; }

.movie_headerline .content .headerline_img { height:185px; }

.movie_headerline .content { height:190px;*height:180px; }

.movie_headerline ul.menu { height:218px;*height:203px;*overflow:hidden; }

#db-sidesrh { width:100%; }

#db-sidesrh form { float:right;width:100%; }

#db-sidesrh input { float:left; }

#db-sidesrh .inp input { width:246px;padding:0 2px;vertical-align:baseline; }

#db-sidesrh input { height:24px;line-height:24px;border:1px solid #c3c3c3; }

#db-sidesrh .bn-srh { width:50px;height:26px;margin:0 0 0 2px;*margin:0;padding-bottom:2px;padding-bottom:0\9;letter-spacing:3px;padding-left:1px;cursor:pointer;border:none;background:transparent url() no-repeat -360px -100px;}

#db-sidesrh .submenu .menu { width:60px; }

#db-sidesrh .submenu .selected span { background-image:url();background-position:-450px -124px; }

#db-sidesrh .submenu .open span { background-position:-450px -100px; }

#db-sidesrh .submenu .line { height:1px;font-size:0;line-height:0;margin-bottom:1px;overflow:hidden;border-bottom:1px solid #c3c3c3; }

#db-sidesrh .submenu,#db-sidesrh .submenu .selected,#db-sidesrh .submenu .menu { border-color:#c3c3c3; }

豆瓣网站是谁创立的?

豆瓣网创始人兼CEO:阿北。真名杨勃,2007年青年领袖评选候选人。

杨勃简介:

陕西汉中人,毕业于清华大学,后在加州大学圣迭戈分校获得物理学博士学位。

主要履历:

1998年加入IBM担任顾问科学家,从事下一代磁记录设备的计算模型工作;

2000-2004年,在北京参与创立供应链管理解决方案方面的创业企业Egistics;

2005年开始搭建豆瓣网,并在一年后成立公司;

豆瓣网的源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于代码大全 豆瓣、豆瓣网的源代码的信息别忘了在本站进行查找喔。

版权说明:如非注明,本站文章均为 AH站长 原创,转载请注明出处和附带本文链接;

本文地址:http://ahzz.com.cn/post/20743.html


取消回复欢迎 发表评论:

分享到

温馨提示

下载成功了么?或者链接失效了?

联系我们反馈

立即下载