精华内容
下载资源
问答
  • 我们在页面布局的时候,明明已经去掉了所有标签的margin和padding,img标签周围依然会有空白,解决方法有以下几种: 1、给img标签设浮动: img{ float:left; } 2、将img转换为块状: img{ display:...

    我们在页面布局的时候,明明已经去掉了所有标签的margin和padding,img标签周围依然会有空白,解决方法有以下几种:

    1、给img标签设浮动:

    img{
        float:left;
    }

    2、将img转换为块状:

    img{
        display:block;
    }

    3、img标签默认的vertical-align是baseline,也就是与字母x的下边距对齐,因此可以这样:

    img{
        vertical-align:top;
    }

    4、给父级设置font-size:

    <style>
        div{
            font-size:0;
        }
    </style>
    
    <div>
        <img src=''>
    </div>

    还有几种比较少用,是给父级设置overflow:hidden,去掉标签之间的空白。

    转载于:https://www.cnblogs.com/11lang/p/6105700.html

    展开全文
  • 标签a的空链接问题

    2017-08-10 15:44:02
    那可能会问,为什么有问题,,还要去用一个空的a标签呢,下面就是解释(摘录前辈): 给标签增加href属性,就意味着以下事情: :link选择器可以选择到它这个a标签可以获得焦点(可以通过tab+’回车‘按键...

    偶然间发现,<a href="#">a1会跳跃吗?</a>,当页面上有滚动条的时候,点击就会跳到页面最上端,然后才知道原理,是因为,‘#’默认的锚点位置是top。

    那可能会问,为什么有问题,,还要去用一个空的a标签呢,下面就是解释(摘录前辈的):

    <a>标签增加href属性,就意味着以下事情:

    • :link选择器可以选择到它
    • 这个a标签可以获得焦点(可以通过tab+’回车‘按键访问到)

    • 在浏览器的默认样式表中,有href属性的<a>标签才有cursor:pointer的效果(尤其是在低版本的IE上)。

    绑定了onclick事件的<a>标签,尤其是它的作用是ajax请求时,基本上我们就用不上这个标签的默认行为,也连接不到的实际页面,一般而言也会在CSS里给予了这个元素的cursor等样式。这时候还要加上href属性,是为了:

    • <a>够响应键盘事件并获得焦点(从而屏幕阅读器能够读出背后的内容,增强可访问性)
    • 优雅降级,在网络连接很差,还没有加载到CSS的时候,<a>依然有手型与正常的link样式。

    1.<a href=“javascript:void(0);” >test1</a> 

    2.<a href=“javascript:;” >test2</a> 

    3.<a href="####" >test3</a> //一般用2-4个#

    其中,1和2不会对地址栏造成影响,而3很明显会对地址栏有影响,最后推荐使用的是2,因为看过很多前辈的博客,“javascript:void(0);”。在某些情况下会有bug,javascript:void(0)   仅仅表示一个死链接。

    因此,最后总结得到的结论就是,建议使用2号方案……

    在脚本之家看到总结的不错,,继续增加一点内容:

    就是。在点击链接后,响应用户自定义的点击事件:

    <a href="#" onclick="doSomething();return false;">test4</a

    <a href="#" onclick="alert();event.returnValue=false;">test5</a>









    展开全文
  • 1、前言本文爬取的是链家的二手房信息,相信个位小伙伴看完后一定能自己动手爬取链家的其他模块,比如:租房、新房等等模块房屋数据。话不多说,来到链家首页,点击北京来到如下页面,这里有全国各个各个省份城市,...

    1、前言

    本文爬取的是链家的二手房信息,相信个位小伙伴看完后一定能自己动手爬取链家的其他模块,比如:租房、新房等等模块房屋数据。

    话不多说,来到链家首页,点击北京

    9506c474f3d53b16fa11ad53c133022c.png

    来到如下页面,这里有全国各个各个省份城市,而且点击某个城市会跳转到以该城市的为定位的页面

    9b314f725a1c63efda750eb7e29c601a.png
    9a1217700d1c6578a20377d4c3bdf89d.png

    点击二手房,来到二手房页面,可以发现链接地址只是在原先的URL上拼接了 /ershoufang/,所以我们之后也可以直接拼接

    058a63a9cac5b5e5a3c7d4aef173da7d.png
    8291f483c81e9dbb2a8f0d4fafc3a364.png

    但注意,以下这种我们不需要的需要排除

    2d48b7428596458d80203caa2e94d1d3.png

    多页爬取,规律如下,多的也不用我说了,大家都能看出来

    423d4926f80539e86521590318d23e10.png

    2、基本环境搭建

    建立数据库

    ba3c60a779b53fdbdf6f8a7b37c77e64.png

    建表语句

    CREATE TABLE `lianjia` (  `id` int(11) NOT NULL AUTO_INCREMENT,  `city` varchar(100) DEFAULT NULL,  `money` varchar(100) DEFAULT NULL,  `address` varchar(100) DEFAULT NULL,  `house_pattern` varchar(100) DEFAULT NULL,  `house_size` varchar(100) DEFAULT NULL,  `house_degree` varchar(100) DEFAULT NULL,  `house_floor` varchar(100) DEFAULT NULL,  `price` varchar(50) DEFAULT NULL,  PRIMARY KEY (`id`)) ENGINE=InnoDB AUTO_INCREMENT=212 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;123456789101112

    创建scrapy项目

    4c563f018c7444e9d48803a0d8e63036.png

    start.py

    from scrapy import cmdlinecmdline.execute("scrapy crawl lianjia".split())123

    3、代码注释分析

    lianjia.py

    # -*- coding: utf-8 -*-import scrapyimport timefrom Lianjia.items import LianjiaItemclass LianjiaSpider(scrapy.Spider):    name = 'lianjia'    allowed_domains = ['lianjia.com']    #拥有各个省份城市的URL    start_urls = ['https://www.lianjia.com/city/']    def parse(self, response):    #参考图1,找到class值为city_list_ul的ul标签,在获取其下的所有li标签        ul = response.xpath("//ul[@class='city_list_ul']/li")                #遍历ul,每个省份代表一个li标签        for li in ul:        #参考图2,获取每个省份下的所有城市的li标签            data_ul = li.xpath(".//ul/li")#遍历得到每个城市            for li_data in data_ul:            #参考图3,获取每个城市的URL和名称                city = li_data.xpath(".//a/text()").get()                #拼接成为二手房链接                page_url = li_data.xpath(".//a/@href").get() + "/ershoufang/"#多页爬取                for i in range(3):                    url = page_url + "pg" + str(i+1)                    print(url)                    yield scrapy.Request(url=url,callback=self.pageData,meta={"info":city})    def pageData(self,response):        print("="*50)        #获取传过来的城市名称        city = response.meta.get("info")                #参考图4,找到class值为sellListContent的ul标签,在获取其下的所有li标签        detail_li = response.xpath("//ul[@class='sellListContent']/li")                #遍历        for page_li in detail_li:        #参考图5,获取class值判断排除多余的广告            if page_li.xpath("@class").get() == "list_app_daoliu":                continue                            #参考图6,获取房屋总价            money = page_li.xpath(".//div[@class='totalPrice']/span/text()").get()            money = str(money) + "万"#参考图7            address = page_li.xpath(".//div[@class='positionInfo']/a/text()").get()                       #参考图8,获取到房屋的全部数据,进行分割            house_data = page_li.xpath(".//div[@class='houseInfo']/text()").get().split("|")            #房屋格局            house_pattern = house_data[0]                        #面积大小            house_size = house_data[1].strip()            #装修程度            house_degree = house_data[3].strip()            #楼层            house_floor = house_data[4].strip()            #单价,参考图9            price = page_li.xpath(".//div[@class='unitPrice']/span/text()").get().replace("单价","")                        time.sleep(0.5)            item = LianjiaItem(city=city,money=money,address=address,house_pattern=house_pattern,house_size=house_size,house_degree=house_degree,house_floor=house_floor,price=price)            yield item1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374

    3、图片辅助分析

    图1

    f37370c65ef104bc42eb90a61104906a.png

    图2

    a6cc41fae4322fb097403c8428b144da.png

    图3

    227ea04f40079f2f9954d9f6b64d47c2.png

    图4

    6147c1eb3d682ef10cb1cbb84f67073e.png

    图5

    e45e2ea1292cff8d6bb29bb9d9662c39.png

    图6

    78e62c3c19a2986556ec17055e201b73.png

    图7

    60a8684fa7975d6b893d30306903a112.png

    图8

    93e29d05714684f3b64891ac3831910c.png

    图9

    58be7b2f75f4e1a1721d8bdb287c27a8.png

    4、完整代码

    lianjia.py

    # -*- coding: utf-8 -*-import scrapyimport timefrom Lianjia.items import LianjiaItemclass LianjiaSpider(scrapy.Spider):    name = 'lianjia'    allowed_domains = ['lianjia.com']    start_urls = ['https://www.lianjia.com/city/']    def parse(self, response):        ul = response.xpath("//ul[@class='city_list_ul']/li")        for li in ul:            data_ul = li.xpath(".//ul/li")            for li_data in data_ul:                city = li_data.xpath(".//a/text()").get()                page_url = li_data.xpath(".//a/@href").get() + "/ershoufang/"                for i in range(3):                    url = page_url + "pg" + str(i+1)                    print(url)                    yield scrapy.Request(url=url,callback=self.pageData,meta={"info":city})    def pageData(self,response):        print("="*50)        city = response.meta.get("info")        detail_li = response.xpath("//ul[@class='sellListContent']/li")        for page_li in detail_li:            if page_li.xpath("@class").get() == "list_app_daoliu":                continue            money = page_li.xpath(".//div[@class='totalPrice']/span/text()").get()            money = str(money) + "万"            address = page_li.xpath(".//div[@class='positionInfo']/a/text()").get()            #获取到房屋的全部数据,进行分割            house_data = page_li.xpath(".//div[@class='houseInfo']/text()").get().split("|")            #房屋格局            house_pattern = house_data[0]            #面积大小            house_size = house_data[1].strip()            #装修程度            house_degree = house_data[3].strip()            #楼层            house_floor = house_data[4].strip()            #单价            price = page_li.xpath(".//div[@class='unitPrice']/span/text()").get().replace("单价","")            time.sleep(0.5)            item = LianjiaItem(city=city,money=money,address=address,house_pattern=house_pattern,house_size=house_size,house_degree=house_degree,house_floor=house_floor,price=price)            yield item12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152

    items.py

    # -*- coding: utf-8 -*-import scrapyclass LianjiaItem(scrapy.Item):    #城市    city = scrapy.Field()    #总价    money = scrapy.Field()    #地址    address = scrapy.Field()    # 房屋格局    house_pattern = scrapy.Field()    # 面积大小    house_size = scrapy.Field()    # 装修程度    house_degree = scrapy.Field()    # 楼层    house_floor = scrapy.Field()    # 单价    price = scrapy.Field()123456789101112131415161718192021

    pipelines.py

    import pymysqlclass LianjiaPipeline:    def __init__(self):        dbparams = {            'host': '127.0.0.1',            'port': 3306,            'user': 'root',  #数据库账号            'password': 'root',#数据库密码            'database': 'lianjia', #数据库名称            'charset': 'utf8'        }        #初始化数据库连接        self.conn = pymysql.connect(**dbparams)        self.cursor = self.conn.cursor()        self._sql = None    def process_item(self, item, spider):    #执行sql        self.cursor.execute(self.sql,(item['city'],item['money'],item['address'],item['house_pattern'],item['house_size'],item['house_degree']                                      ,item['house_floor'],item['price']))        self.conn.commit()  #提交        return item    @property    def sql(self):        if not self._sql:        #数据库插入语句            self._sql = """                    insert into lianjia(id,city,money,address,house_pattern,house_size,house_degree,house_floor,price)                    values(null,%s,%s,%s,%s,%s,%s,%s,%s)                """            return self._sql        return self._sql123456789101112131415161718192021222324252627282930313233343536

    settings.py

    # -*- coding: utf-8 -*-BOT_NAME = 'Lianjia'SPIDER_MODULES = ['Lianjia.spiders']NEWSPIDER_MODULE = 'Lianjia.spiders'LOG_LEVEL="ERROR"# Crawl responsibly by identifying yourself (and your website) on the user-agent#USER_AGENT = 'Lianjia (+http://www.yourdomain.com)'# Obey robots.txt rulesROBOTSTXT_OBEY = False# Configure maximum concurrent requests performed by Scrapy (default: 16)#CONCURRENT_REQUESTS = 32# Configure a delay for requests for the same website (default: 0)# See https://docs.scrapy.org/en/latest/topics/settings.html#download-delay# See also autothrottle settings and docs#DOWNLOAD_DELAY = 3# The download delay setting will honor only one of:#CONCURRENT_REQUESTS_PER_DOMAIN = 16#CONCURRENT_REQUESTS_PER_IP = 16# Disable cookies (enabled by default)#COOKIES_ENABLED = False# Disable Telnet Console (enabled by default)#TELNETCONSOLE_ENABLED = False# Override the default request headers:DEFAULT_REQUEST_HEADERS = {  'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',  'Accept-Language': 'en',  "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36 Edg/84.0.522.63"}# Enable or disable spider middlewares# See https://docs.scrapy.org/en/latest/topics/spider-middleware.html#SPIDER_MIDDLEWARES = {#    'Lianjia.middlewares.LianjiaSpiderMiddleware': 543,#}# Enable or disable downloader middlewares# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#DOWNLOADER_MIDDLEWARES = {#    'Lianjia.middlewares.LianjiaDownloaderMiddleware': 543,#}# Enable or disable extensions# See https://docs.scrapy.org/en/latest/topics/extensions.html#EXTENSIONS = {#    'scrapy.extensions.telnet.TelnetConsole': None,#}# Configure item pipelines# See https://docs.scrapy.org/en/latest/topics/item-pipeline.htmlITEM_PIPELINES = {   'Lianjia.pipelines.LianjiaPipeline': 300,}# Enable and configure the AutoThrottle extension (disabled by default)# See https://docs.scrapy.org/en/latest/topics/autothrottle.html#AUTOTHROTTLE_ENABLED = True# The initial download delay#AUTOTHROTTLE_START_DELAY = 5# The maximum download delay to be set in case of high latencies#AUTOTHROTTLE_MAX_DELAY = 60# The average number of requests Scrapy should be sending in parallel to# each remote server#AUTOTHROTTLE_TARGET_CONCURRENCY = 1.0# Enable showing throttling stats for every response received:#AUTOTHROTTLE_DEBUG = False# Enable and configure HTTP caching (disabled by default)# See https://docs.scrapy.org/en/latest/topics/downloader-middleware.html#httpcache-middleware-settings#HTTPCACHE_ENABLED = True#HTTPCACHE_EXPIRATION_SECS = 0#HTTPCACHE_DIR = 'httpcache'#HTTPCACHE_IGNORE_HTTP_CODES = []#HTTPCACHE_STORAGE = 'scrapy.extensions.httpcache.FilesystemCacheStorage'1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283

    5、运行结果

    a8f55a1ae240f4acf4bb71a2c9780f0e.png

    全部数据远远大于518条,博主爬取一会就停下来了,这里只是个演示


    博主会持续更新,有兴趣的小伙伴可以点赞、关注和收藏下哦,你们的支持就是我创作最大的动力!

    源码获取私信小编 01

    如有侵权联系小编删除!

    展开全文
  • a标签的href值为时怎么设置

    千次阅读 2018-02-01 13:59:02
    链接时,会保留a标签的表现,但是当这个a标签不在首屏里,比如  body{position:relative;} a{position:absolute;top:1000px;} 此时点击这个链接时,会跳转到首屏。 所以我们需要使用以下两种方式:

    a标签中的href值是一个地址,指示点击这个标签时,转向的地址。

    但是当使用a标签来做按钮,不需要跳转时,href值即为空。

    <a href="#">链接</a>时,会保留a标签的表现,但是当这个a标签不在首屏里,比如

    <style type="text/css">

     body{position:relative;}

    a{position:absolute;top:1000px;}

    </style>

    此时点击这个链接时,会跳转到首屏。

    所以我们需要使用以下两种方式:

    1:<a href="javascript:;">链接</a>表示当点击这个a标签时,执行javascript后面的语句,但是为空,就说明没有任何改变;

    2:<a href="javascript:void(0);">链接</a>表示点击时执行void(0)这句话,返回值为undefined,也是没有任何改变。

    展开全文
  • 警告的大概意思就是标签体在一些浏览器可能不适用,我当时用的是火狐浏览器。 点击提示的Expand tag就自动把单标签扩为双标签了。 可能sciprt标签(脚本语言标签)你需要明确的告诉浏览器从哪里开始,从哪里结束...
  • 通常我们使用 background-image 标签时, url 值无非就以下几种: 先说上面第三种: @/assets/media/hd.jpg 会提示文件不存在,编译报错 /assets/media/hd.jpg 不会提示报错,但是实际在开发页面不会显示...
  • 概述DOM全称Document Object Model,即文档对象模型。HTML和XML文档编程...W3C DOM由以下三部分组成:核心DOM - 针对任何结构化文档标准模型。XML DOM - 针对XML文档标准模型。HTML DOM - 针对HTML文档标...
  • Kongzue StackLabel 堆叠标签组件,适合快速完成需要堆叠标签的场景,例如“搜索历史”、“猜你喜欢”等功能。 Demo预览图如下: 从 1.1.3 版本起,亦可实现多选效果: Demo下载地址: 优势 轻松易使用,快速创建...
  • 该构建是成功,但生成jar文件是空的,因为警告说.为什么这样我做错了什么?这是我pom.xmlxmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache....
  • 【MPLS】LDP保留的标签

    2019-09-02 22:26:34
    标签0显式空标签 标签3隐式空标签 标签1路由器报警标签 标签14OAM报警标签 其他0-15之间的被保留标签的功能目前暂时没有定义。因此我们的可用标签是16到1048575(2的20次方-1) 1.隐式空标签implicit-null 在...
  • 在进行页面DIV CSS排版时浏览器中图片元素img下出现多余空白问题绝对常见…… 以下几种方式,可以根据不同情况使用: 1、将图片转换为块级对象 设置img为“display:block;”。 2、设置图片...
  • 以下是页首裁图: 页面头部有空白区域。有人可能怀疑cssmargin,padding,border没有重置为0造成。其实不然,我已经将这几个属性重置为0。 而且在firebug下面查看HTML代码会发现link标签和...
  • 在IE9以下版本无法访问到这个类型,JS中所有节点都继承自Node类型,都共享着相同基本属性和方法Node有一个属性nodeType表示Node类型,它一个整数,其数值分别表示相应Node类型节点类型Node类型假设我们要...
  • img src值为时,2次请求 以前应该有同学遇到过类似情况, 当有一个类似如 <img src=’’> 的标签时, 会对页面多出一次请求, ...以下是初步结论: 标签/请求次数/浏览器 IE ...
  • HTML标签

    热门讨论 2020-12-30 17:33:01
    以下为整理出来的HTML标签的基本内容 HTML 1.一种描述网页的文本标记语言;超文本标记语言,一种规范 2.通过HTML标签来表述网页;预定义,已经定义好的各种标记,只需要我们把对应的标记放到合适的位置 一....
  • 以下是个人在学习beautifulSoup过程中的一些总结,目前我在使用爬虫数据时使用的方法的是:先用find_all()找出需要内容所在的标签,如果所需内容一个find_all()不能满足,那就用两个或者多个。接下来遍历find_all的...
  • 调整指定td标签的

    2020-12-11 18:04:44
    以下代码获取a标签值。 var htmlVal = $("#editCallOnOrg_datatable tr:eq(1) td:nth-child(3) a").html(); 第二步:把指定元素赋为 $("#editCallOnOrg_datatable tr:eqeq(1) td:nth-child(3) a
  • struts1 logic标签的使用

    2013-09-01 19:07:00
    1. logic:empty 该标签是用来判断是否为空的。如果为,该标签体中嵌入内容就会被处理。该标签用于以下情况: 1)当Java对象为null时; 2)当String对象为""时; 3)当java.util.Collection对象中isEmpty()...
  • strutslogic标签介绍

    2011-09-19 09:55:35
    1. logic:empty   该标签是用来判断是否为空的。如果为,该标签体中嵌入内容就会被处理。该标签用于以下情况:  1)当Java对象为null时;  2)当String对象为""时;
  • HTML中常用的标签

    2018-07-08 00:07:04
    说明:这篇文章只是对常用标签的名字和功能做了简单说明,需要学习具体使用方法的亲,可以去下边这个链接哦!!!  点击打开链接 一、元素标签     &lt;br/&gt; 不允许写成&lt;br&gt;&...
  • strutslogic标签使用

    2009-10-23 15:28:54
    标签是用来判断是否为空的。如果为,该标签体中嵌入内容就会被处理。该标签用于以下情况: 1)当Java对象为null时; 2)当String对象为""时; 3)当java.util.Collection对象中...
  • a标签点击事件

    2017-03-29 15:56:00
    当我们在处理a标签点击事件时发现即使href=""里面为,点击事件效果也不明显,这种情况该如何处理呢?常见处理方法有以下几种: 1、a href="javascript:void(0);" onclick="method()"这种方法比较最常用...
  • 几个JSTL标签的使用

    2007-03-27 13:02:00
    最近在项目中使用了几个JSTL标签,回过头来熟悉一下,或许... 标签的语法说明如下: 标签具有以下一些属性: value:用来定义需要求解的表达式。 default:缺省值。当求解后的表达式为null或者String为时将打印这

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 578
精华内容 231
关键字:

以下标签是空标签的是