set.css

@charset "utf-8";
/* CSS Document */
/*21cn 相同样式*/
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,fieldset,legend,input,button,textarea,p,blockquote,th,td{margin:0;padding:0}
/* dt标签定义了定义列表中的项目(即术语部分)。*/
/* dd 可在定义列表中定义条目的定义部分。*/
/*pre 元素可定义预格式化的文本。被包围在 pre 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。
<pre> 标签的一个常见应用就是用来表示计算机的源代码。*/
/*legend 元素可为 fieldset 定义一个标题。*/
/*
<textarea> 标签定义多行的文本输入控件。
文本区中可容纳无限数量的文本,其中的文本的默认字体是等宽字体(通常是 Courier)。
可以通过 cols 和 rows 属性来规定 textarea 的尺寸,不过更好的办法是使用 CSS 的 height 和 width 属性。
注释:在文本输入区内的文本行间,用 "%OD%OA" (回车/换行)进行分隔。
提示:可以通过 <textarea> 标签的 wrap 属性设置文本输入区内的换行模式。
*/
/*<blockquote> 标签可定义一个块引用。<blockquote> 与 <blockquote> 之间的所有文本都会从常规文本中分离出来,经常会在左、右两边进行缩进,而且有时会使用斜体。也就是说,块引用拥有它们自己的空间。*/
fieldset,img{border:0 none}
/* 
fieldset 元素可将表单内的相关元素分组。
<fieldset> 标签将表单内容的一部分打包,生成一组相关表单的字段。 
当一组表单元素放到 <fieldset> 标签内时,浏览器会以特殊方式来显示它们,它们可能有特殊的边界、3D 效果,或者甚至可创建一个子表单来处理这些元素。 
<fieldset> 标签没有必需的或唯一的属性。
<legend> 标签为 fieldset 元素定义标题。
*/
:focus{outline:0}
/*
:focus 伪类在元素获得焦点时向元素添加特殊的样式。
注释:IE 浏览器不支持此属性。
说明:这个伪类应用于有焦点的元素。例如 HTML 中一个有文本输入焦点的输入框,其中出现了文本输入光标;也就是说,在用户开始键入时,文本会输入到这个输入框。其他元素(如超链接)也可以有焦点,不过 CSS 没有定义哪些元素可以有焦点。
*/
address,caption,cite,code,dfn,em,b,i,th,var,optgroup{font-style:normal;font-weight:400}
/*<address> 可定义一个地址(比如电子邮件地址)。您应当使用它来定义地址、签名或者文档的作者身份。*/
/*caption 元素可定义一个表格标题。caption 标签必须紧随 table 标签之后。您只能对每个表格定义一个标题。通常这个标题会被居中于表格之上。*/
/*cite定义引用。可使用该标签对参考文献的引用进行定义,比如书籍或杂志的标题。*/
/*code定义计算机代码文本*/
/*dfn定义计算机代码文本。*/
/*em把文本定义为强调的内容。*/
/*b呈现粗体文本效果。*/
/*i显示斜体文本效果。*/
/* th定义表格内的表头单元格。此 th 元素内部的文本通常会呈现为粗体。*/
/* var定义变量。您可以将此标签与 <pre> 及 <code> 标签配合使用。*/
/* optgroup定义选项组。此元素允许您组合选项。当您使用一个长的选项列表时,对相关的选项进行组合会使处理更加容易。*/
abbr,acronym{border:0;font-variant:normal}
/* abbr表示一个缩写形式,比如 "Inc."、"etc."。通过对缩写词语进行标记,您就能够为浏览器、拼写检查程序、翻译系统以及搜索引擎分度器提供有用的信息。
<abbr> 标签最初是在 HTML 4.0 中引入的,表示它所包含的文本是一个更长的单词或短语的缩写形式。
浏览器可能会根据这个信息改变对这些文本的显示方式,或者用其他文本代替。也许当前流行的浏览器对 <abbr> 标签中包含的文本还没有任何处理方式,但是我们无法预测将来的版本将会如何实现该标签。*/
/*<acronym> 元素可定义只取首字母缩写,比如 "NATO"。通过对只取首字母缩写进行标记,您就能够为浏览器、拼写检查程序、翻译系统以及搜索引擎分度器提供有用的信息。*/
input,button,textarea,select,optgroup,option{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit}
/*select 元素可创建单选或多选菜单。
当提交表单时,浏览器会提交选定的项目,或者收集用逗号分隔的多个选项,将其合成一个单独的参数列表,并且在将 <select> 表单数据提交给服务器时包括 name 属性。*/
/*option 元素可定义下拉列表中的一个选项(一个条目)。
浏览器将 <option> 标签中的内容作为 <select> 标签的菜单或是滚动列表中的一个元素显示。*/
textarea{overflow:auto}
ol,ul{list-style:none}
table{border-collapse:collapse;border-spacing:0}
caption,th{text-align:left}
sup,sub{font-size:100%;vertical-align:baseline}
/*<sub> 标签可定义下标文本。<sup> 可定义上标文本。*/
:link,:visited,ins{text-decoration:none}
/*:link 伪类向未访问的链接添加特殊的样式。这个伪类应用于尚未访问过的链接;也就是说,链接所指的 URI 尚未出现在用户代理的历史中。这种状态与 :visited 状态是互斥的。*/
/*:visited 伪类向已访问的链接添加特殊的样式。*/
/*<ins>HTML5标签 定义文档的其余部分之外的插入文本。*/
blockquote,q{quotes:none}
blockquote:before,blockquote:after,q:before,q:after{content:none}
/*:before 伪元素在元素之前添加内容。
 这个伪元素允许创作人员在元素内容的最前面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。*/
 /*:after 伪元素在元素之后添加内容。
 这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。*/
.clearfix:after{content:"\0020";display:block;height:0;clear:both;visibility:hidden;overflow:hidden}
/* visibility 属性规定元素是否可见。
 提示:即使不可见的元素也会占据页面上的空间。请使用 "display" 属性来创建不占据页面空间的不可见元素。
说明:这个属性指定是否显示一个元素生成的元素框。这意味着元素仍占据其本来的空间,不过可以完全不可见。值 collapse 在表中用于从表布局中删除列或行。*/
/*:after 伪元素在元素之后添加内容。
 这个伪元素允许创作人员在元素内容的最后面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用属性 display 改变这一点。*/
 /*  overflow 属性规定当内容溢出元素框时发生的事情。
说明: 这个属性定义溢出元素内容区的内容会如何处理。如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。*/
.clearfix{zoom:1}
/*Zoom属性是IE浏览器的专有属性,Firefox等浏览器不支持。它可以设置或检索对象的缩放比例。除此之外,它还有其他一些小作用,比如触发ie的hasLayout属性,清除浮动、清除margin的重叠等。
Zoom的使用方法:
zoom : normal | number
normal :  默认值。使用对象的实际尺寸
number :  百分数 | 无符号浮点实数。浮点实数值为1.0或百分数为100%时相当于此属性的 normal 值 用白话讲解就是zoom:后面的数字即放大的倍数,可以是数值,也可以是百分比。如:zoom:1,zoom:120%。 而这个属性只要在IE中才起作用,所以很少用到它的实际用途,而最经常用到作用是清除浮动等,如:
.border{
border:1px solid #CCC;
padding:2px;
overflow:hidden;
_zoom:1;
}
_zoom是CSS hack中专对IE6起作用的部分。IE6浏览器会执行zoom:1表示对象的缩放比例,但这里
overflow:hidden;和_zoom:1;是连起来用的,作用是清除border内部浮动。
同理,还可以使用同样方法清除margin属性在IE浏览器中的重叠问题。*/
.fr{display:inline;float:right!important}
.fl{display:inline;float:left!important}
.show{display:block}
.hide{display:none}
.center{text-align:center!important}
h1,h2,h3,h4,h5,h6,code,kbd,samp,tt,input,button,textarea,select{font-size:100%}
/*<kbd> 标签定义键盘文本。
说到技术概念上的特殊样式时,就要提到 <kbd> 标签。正如你已经猜到的,它用来表示文本是从键盘上键入的。
浏览器通常用等宽字体来显示该标签中包含的文本。
<kbd> 标签经常用在于计算机相关的文档和手册中。*/
button,input[type=reset],input[type=button],input[type=submit]{cursor:pointer;overflow:visible}
/*cursor 属性规定要显示的光标的类型(形状)。
该属性定义了鼠标指针放在一个元素边界范围内时所用的光标形状
所有主流浏览器都支持 cursor 属性。
注释:Opera 9.3 和 Safari 3 不支持 url 值。
注释:任何版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。
url:
需使用的自定义光标的 URL。 
注释:请在此列表的末端始终定义一种普通的光标,以防没有由 URL 定义的可用光标。
 default:
默认光标(通常是一个箭头)
auto:
 默认。浏览器设置的光标。
crosshair:
 光标呈现为十字线。
 pointer:
光标呈现为指示链接的指针(一只手)
help:
此光标指示可用的帮助(通常是一个问号或一个气球)。
wait:
此光标指示程序正忙(通常是一只表或沙漏)。
text:
此光标指示文本。
move:
此光标指示某对象可被移动。
*/
.blank5,.blank8,.blank10{clear:both;overflow:hidden}
.blank5{height:5px}.blank8{height:8px}.blank10{height:10px}
.blank20{clear:both;margin:15px 0;*margin:0 0 15px;_margin:15px 0;border-bottom:1px dashed #ddd;overflow:hidden;position:relative}
body{font:400 12px/1.5 arial,\5b8b\4f53;}
a:focus,a:hover{text-decoration:underline;color:#BD0A01}
html{overflow-y:scroll}
/*overflow-y : visible | auto | hidden | scroll 
 visible  :  默认值。不剪切内容也不添加滚动条。假如显式声明此默认值,对象将以包含对象的 window 或 frame 的尺寸裁切。并且 clip 属性设置将失效 
auto     :  在必需时对象内容才会被裁切或显示纵向滚动条 
hidden   :  不显示超过对象尺寸的内容 
scroll   :  总是显示纵向滚动条 
*/
.wrap{margin:0 auto;width:980px}
.h-nav{width:100%;height:34px;line-height:34px;color:#ccc;text-align:center;font-size:14px;overflow:hidden;clear:both}
.h-nav a{color:#010101;margin:0 8px}
.h-gg{border:1px solid #ddd;background:#F7F7F7;height:100px;overflow:hidden;padding:9px 0 9px 9px}
.h-gg img{float:left;margin-right:9px}
.footer{height:100px;color:#000;text-align:center;padding-top:15px}
.footer p{padding-top:5px}
.footer a{color:#000}
.footer a:hover{color:#f00}
#GeneratedByCssGaga177{transform:rotate(20120522093518deg)}
/* transform意思是变形 在css3中主要包括旋转:rotate 扭曲:skew 缩放:scale 移动 translate以及矩阵变形matrix */
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
import requests import random import parsel visited_urls = set() # 保存已经访问过的链接 page = 1 while True: # 循环爬取 url = f'https://travel.qunar.com/travelbook/list.htm?page={page}&order=hot_heat' html_data = requests.get(url).text selector = parsel.Selector(html_data) lis = selector.css('.list_item h2 a::attr(href)').getall() # 遍历当前页面中的所有链接 for li in lis: detail_url = 'https://travel.qunar.com' + li if detail_url in visited_urls: # 如果链接已经访问过,则跳过 continue visited_urls.add(detail_url) # 将链接加入集合中 detail_html = requests.get(detail_url).text time.sleep(random.randint(3, 5)) detail_selector = parsel.Selector(detail_html) title = detail_selector.css('.b_crumb_cont *:nth-child(3)::text').get() comment = detail_selector.css('.title.white::text').get() view_count = detail_selector.css('.view_count::text').get() date = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.when > p > span.data::text').get() days = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howlong > p > span.data::text').get() money = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.howmuch > p > span.data::text').get() character = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.who > p > span.data::text').get() play_list = detail_selector.css('#js_mainleft > div.b_foreword > ul > li.f_item.how > p > span.data > span::text').getall() for play in play_list: print(play) print(title, comment, view_count, date, days, money, character, play_list, detail_url) time.sleep(random.randint(3, 5)) # 判断是否需要继续爬取 if len(lis) == 0 or page >= 20: break page += 1这段代码怎么将爬取出来的所有数据保存到csv文件
06-13
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值