精华内容
下载资源
问答
  • 新手写代码——规范的重要性

    千次阅读 2012-12-13 15:48:12
    新手写代码——规范的重要性(1) 对于每一位有一定概念基础的新手来说要独立完成一段代码是有一定的难度的,往往很多的情况下即使模型架构出来了也不知道从何处下手。对于这些人(包括我)所需要的东西不是...

    新手写代码——规范的重要性(1)

    对于每一位有一定概念基础的新手来说要独立完成一段代码是有一定的难度的,往往很多的情况下即使模型架构出来了也不知道从何处下手。对于这些人(包括我)所需要的东西不是可以从书本上可以获取的是需要靠程序员进行大量的实战然后对自己的代码进行规则制定架构优化。如果这些人阅读一段代码然后从中修改或许可以表现的很好,但是让其写出一段更加简单的就需要更多的考虑时间了。

    为此,一个良好的编程规范是很有必要的,或许基本上学过C++的人都知道驼式命名法,但是要说到编程规范就感觉有点玄乎了。其实道理是一样的,方便人进行维护。阅读过MFC库的人都应该知道VC和MFC的关系,如果需要自己对VC进行封装(不知读者是否有过这种想法)不知道会是什么结果。MFC中定义了大量的宏来简化代码的编辑但是需要库维护者对这些东西熟练的运用。真的是这样么,据统计在代码的阅读中能够熟练操作的代码量为600行,而随便一个MFC库文件可能不止这么多,这样就会给维护人员带来很大的负担。所以库维护人员肯定是知道些什么大伙不知道的秘密了。其实我感觉(因为我不是维护人员)他们也就是只需要知道MFC框架体系只需要知道每个框架节点的功能,而不需要每个函数每个类的具体实现。同样的道理要过需要研究MFC代码的最好办法是用Insight工具查看源代码,然后整理出相应的框架。而要完成一个大的框架就必须有一定的规范。同样,我们自己编写代码的时候不能说我们写的只是小小的东西就随便用C语言实现下,那么我想说这些人很难步入编程的圣殿。
    不知道大家是否有过这样的感觉,一个大的cpp文件总是要翻来翻去的即使用的是VIM神器也还是很烦,在自己的库逐渐壮大的时候是不是发现有很多的代码都是重复的然后就会写些inline或宏来替换只是这些函数或宏不知道放在哪里好,对同一个库的不同模块进行测试的时候不知用了多少个main入口函数。但是如果有一个规范的来维护这些代码的话这些都将不是问题。
    其实我觉得将文件封装在不同的文件中程序员可以很方便的通过文件名来想起一些东西,也就是说宁愿用多个文件明来查找也不愿在一个文件中使用<Ctrl-F>查找。说了这么多如果不说点实在就肯定要被喷了。
    我对我的博文(http://blog.csdn.net/dashing_man/article/details/8280192)中COM代码小片段进行了一系列规范性的组织,方便我在之后的学习中将后续的片段加入合适的文件中。下面来分别说下这些东西是如何规范的。
    展开全文
  • End 行末 Home 开始

    End 行末

    Home 开始

    展开全文
  • @自己 class HelloWorld{ public static void main(String[] args){ System.out.println(“要开心呀”); } } 底下给自己的建议 注意System 心情不好时就去写一下代码因为代码可以让...注意要用英文输入法写代码 ...

    @自己

    class HelloWorld{
    public static void main(String[] args){
    System.out.println(“要开心呀”);
    }
    }
    底下给自己的建议
    注意System
    心情不好时就去写一下代码因为代码可以让自己快乐
    注意要用英文输入法写代码

    展开全文
  • 新手 布局加了个按钮 点击跳转微信支付页面(固定付款10元) 怎么简单怎么 不用回调也可以 最好不用注册什么的
  • Python新手写出漂亮的爬虫代码2——从json获取信息

    万次阅读 多人点赞 2017-11-21 15:38:08
    Python新手写出漂亮的爬虫代码2——从json获取信息好久没有写关于爬虫的东西了,如果正在读这篇博客的你看过我的另一篇《Python新手写出漂亮的爬虫代码1——从html获取信息》想必已经对一些写在html中的信息进行过...

    Python新手写出漂亮的爬虫代码2——从json获取信息

    好久没有写关于爬虫的东西了,如果正在读这篇博客的你看过我的另一篇《Python新手写出漂亮的爬虫代码1——从html获取信息》想必已经对一些写在html中的信息进行过爬取了,今天给大家介绍一下另一种爬虫——动态爬虫。

    1.静态爬虫与动态爬虫

    何为动态爬虫,html中的信息是静态的,或者说是通过html语言生成了网页中的对应信息,是写好的,你把网页的html源代码粘贴过来,你要的信息就在里面,这种情况下就是静态爬虫,而有的时候我们会发现我们需要的信息不在html源码中,比如电商网站的评论,某些网站的一些条形图啊,折线图啊,(这些图实际上是数字,只是通过某种接口传到网页上,然后渲染成了图的形式,其本质上是数字),这些可能频繁更新的信息(比如评论每小时甚至每分钟都在更新),这时候,如果将它写在html中,是一个很难受的过程,因为有一个新评论你就要改写html,所以对于这种情况,我们想要的数据都会存在一个json文件中。

    这里需要做一个说明,我们看网页源代码,通过在网页上鼠标邮件,点选“查看网页源代码”出来的才是html源码,而通过F12调出的开发者工具中的element或元素中的那些,不是html代码,而是html代码的一个超集,它比真实的html代码内容要多,所以查看信息是否在html中还是需要点选“查看网页源代码”才准确。

    2.json

    json是一种数据格式,类似于python中的字典,以key:value的形式存储信息,是一种目前越来越常用的方便的数据存储方式。

    3.动态爬虫思路

    动态爬虫较静态爬虫而言难点在于定位数据或信息的存储位置,而一旦获取了这个位置(json文件对应的url),那么就非常简单了,使用python的json库可以对json数据轻松的解析,说白了只是根据你要的key提取其value而已,所以动态爬虫是比较简单的(当然,这里还有另一个问题,是异步加载问题,这个以后有机会再讲,异步加载是啥?比如说某个网页,没有“下一页”按钮,而是用鼠标滚轮或者屏幕右侧的滑块,向下滑就会刷新,你连往下刷多久会到底都不知道,这就是异步加载,异步加载可以通过抓包工具去解决,也可以使用selenium模拟鼠标点击去解决,以后会讲到)。

    4.定位json存储位置

    定位json的位置通常是通过“换页”来查看Network的变更,在网页上按F12打开开发者工具,界面放到Network中,然后换页,查看“js”或是“XHR”中文件的更新,然后一一查看更新的json文件,来定位我们需要的信息在哪里。

    5.实例讲解

    说了这么多你可能还是有点儿糊涂,没关系,来个例子就懂了,就拿天猫的一个女装来说吧,其url为https://detail.tmall.com/item.htm?spm=a1z10.3-b-s.w4011-14681080882.119.17398fc89ncLzj&id=529355863153&rn=ec60f51904f6286d9b2d8bb02c8ca5a8&abbucket=5
    (这个模特身材还不错哈哈)

    请看图1,我们点击红色方块中的“累计评价”,就可以看到以往的评价,按照我们前一篇爬虫的讲解来说,这个信息可能在html代码中,好,那么我们看一看,按下F12,如图2所示。

    这里写图片描述

    图1

    图2中的1和2位置可以看到,评论仿佛是在一个标签中的,但是还记得我前面的说明么,你在这里看到的html代码是真实html代码的一个超集,比实际的html代码要多,那么我们右键鼠标,选择“查看网页源代码”,并把源码复制粘贴到文本编辑器中,查找图2中1对应的评论,结果如图3所示。

    这里写图片描述

    图2

    图3中竟然没有搜索到这个评论,也就是说图2的开发者工具欺骗了我们,too young too sample,sometime naive,哈哈,没关系,以后每次爬虫之前都这么看一看,就知道你要的信息是不是在html中了。好了,既然不在html中,那么我们需要去寻找我们想要的信息在哪里了。

    这里写图片描述

    图3

    按照图4,在开发者工具中选择“Network”,来查看网页其他组件信息。

    这里写图片描述

    图4

    如图5的红色方块,点击“JS”,不出以外应该是空的,当然如果你那里不是空的也无所谓,无伤大雅,我们要的数据就在JS下,只是现在还未显示出来(还有一些情况,尤其是折线图这些图像形式的数据,一般会存储在XHR下,也就是图5中的粉色圈中,也是.json形式的),接下来我们就要去寻找存储评论数据的json文件了。

    这里写图片描述

    图5

    此时“JS”下的界面如图5所示,有可能是空的,当然也可能会有一些其他的东西,接下来看图6,点击图6中A处页码“2”,将评论页切换到第二页,这时候你会发现B处,也就是JS界面中出现了一个文件(如果你先前图5中有内容,那此时应该是多出一个文件),这个文件叫“list-detail**********”。我们的数据就存放在这里。

    有些时候,你换页后可能会出现或新增多个json文件,不过一般都不会很多,最多也就5个,你只需要挨个点进去看看哪个存放了你需要的信息即可。

    这里写图片描述

    图6

    接下来,我们双击这个文件,或者单击选中这个文件,复制其url然后粘贴到浏览器的地址栏中也可,其内容如图7所示,这里红框标出了其前三条评论。因为我们是在评论的第二页打开的这个json,所以它对应的是第二页的评论内容,而网页中第二页评论的前三条如图8所示。

    这里写图片描述

    图7

    可以看到,数据对上了,我们已经成功的定位到了评论的位置,图7的json诚如各位所见,是一个字典的形式,评论内容对应的key为”rateContent”。

    这里写图片描述

    图8

    接下来看一下评论的页码是怎么控制的。如图9所示,其实两个url只差了之歌数字,就是图9红框标出的”currentPage=”后面的数字,如果是第一页,数字就是1,如果是第二页,数字就是2。好了,换页规律找到了,剩下就是解析json了,就是最简单的一步。

    这里写图片描述

    图9

    关于json的解析我不准备过多解释了,有python基础的朋友一定对json这个库不陌生,我在代码中以注释的方式给出吧。本例代码使用Python3。

    6.代码实战

    import urllib
    import urllib.request
    import re
    from bs4 import BeautifulSoup
    import time
    import random
    import json
    import math
    
    # 创建一个文件存储评论及其他数据
    myfile = open("tm_fz_gn_1_1_1.txt","a")
    # 共获取四个变量,评论者昵称,是否超级会员,评论时间,评论内容
    print("评论者昵称","是否超级会员","评论时间","comment",sep='|',file=myfile)
    stop = random.uniform(0.5,2)
    
    # 获取页数
    try:
        url0 = "https://rate.tmall.com/list_detail_rate.htm?itemId=544442011638&spuId=718591114&sellerId=196993935&order=3&currentPage=1&append=0&content=1&tagId=&posi=&picture=&ua=025UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5Ockp3S39AeU13QnhDeC4%3D%7CU2xMHDJ7G2AHYg8hAS8XIw0tA18%2BWDRTLVd5L3k%3D%7CVGhXd1llXWBcaFduWmBVb1RvWGVHe0Z9SXRLc05zRnlDfkZ6VAI%3D%7CVWldfS0TMww1CioWIgIsCCNMMWwyVDlrME8iakFhXn5BZEocSg%3D%3D%7CVmhIGCUFOBgkGiMXNwwzBzsbJxkiGTkDOA0tES8ULw81Cj9pPw%3D%3D%7CV2xMHDIcPAA%2FASEcPAM4Az9pPw%3D%3D%7CWGBAED4QMGBaZ1p6RXBKc1NoXWBCfUh0S3NTbVBqSnROblBkMhIvDyEPLxciGSx6LA%3D%3D%7CWWBdYEB9XWJCfkd7W2VdZ0d%2BXmBdfUF0Ig%3D%3D&isg=AnBwr9DL3fao4YAwe7Eb61VPQT4CEVRrBvSVMGrBPUueJRHPEskkk8YHCxu-&needFold=0&_ksTS=1501924984733_1070&callback=jsonp1071"
        req0 = urllib.request.Request(url0)
        req0.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36')
        html0 = urllib.request.urlopen(req0,timeout=500).read()
        html0 = bytes.decode(html0,encoding="gbk")
        # print(type(html0))
        '''
        下面这一步是因为这个json不是标准的json,json是一个完完全全的字典,而这个json是在类似json1234()这个结构的括号中,打开看看这个json你就懂了,所以需要用正则表达式去获取真实的json(即字典)
        '''
        js0 = re.search('{"rateDetail(.*)',html0).group()[:-1]
        # 将json主要内容存入content
        content0 = json.loads(js0)
        content = content0['rateDetail']
        # print(content.keys())
        # print(json.dumps(content0, sort_keys=True, indent=2))
        #尾页
        lastpage = int(content['paginator']['lastPage'])
    except:
        print("获取尾页失败,默认爬取99页")
        lastpage = 99
    
    # 构造循环遍历每一页
    for i in range(1,lastpage):
        try:
            url = 'https://rate.tmall.com/list_detail_rate.htm?itemId=544442011638&spuId=718591114&sellerId=196993935&order=3&currentPage='+str(i)+'&append=0&content=1&tagId=&posi=&picture=&ua=025UW5TcyMNYQwiAiwQRHhBfEF8QXtHcklnMWc%3D%7CUm5Ockp3S39AeU13QnhDeC4%3D%7CU2xMHDJ7G2AHYg8hAS8XIw0tA18%2BWDRTLVd5L3k%3D%7CVGhXd1llXWBcaFduWmBVb1RvWGVHe0Z9SXRLc05zRnlDfkZ6VAI%3D%7CVWldfS0TMww1CioWIgIsCCNMMWwyVDlrME8iakFhXn5BZEocSg%3D%3D%7CVmhIGCUFOBgkGiMXNwwzBzsbJxkiGTkDOA0tES8ULw81Cj9pPw%3D%3D%7CV2xMHDIcPAA%2FASEcPAM4Az9pPw%3D%3D%7CWGBAED4QMGBaZ1p6RXBKc1NoXWBCfUh0S3NTbVBqSnROblBkMhIvDyEPLxciGSx6LA%3D%3D%7CWWBdYEB9XWJCfkd7W2VdZ0d%2BXmBdfUF0Ig%3D%3D&isg=AnBwr9DL3fao4YAwe7Eb61VPQT4CEVRrBvSVMGrBPUueJRHPEskkk8YHCxu-&needFold=0&_ksTS=1501924984733_1070&callback=jsonp1071'
            req = urllib.request.Request(url)
            req.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36')
            html = urllib.request.urlopen(req,timeout=500).read()
            html = bytes.decode(html,encoding="gbk")
            js = re.search('{"rateDetail(.*)', html).group()[:-1]
            infos0 = json.loads(js)
            infos = infos0['rateDetail']['rateList']
            tiaoshu = 0
            for info in infos:
                try:
                    tiaoshu += 1
                    time.sleep(stop)
                    ss = "正在爬取第%d页的第%d条评论,共%d页" % (i,tiaoshu,lastpage)
                    print(ss)
                    # 用户姓名
                    try:
                        user_name = info['displayUserNick'].strip().replace('\n','')
                    except:
                        user_name = ""
                    # 是否黄金会员
                    try:
                        user_status = info['goldUser'].strip().replace('\n','')
                    except:
                        user_status = ""
                    # 评论时间
                    try:
                        comment_date = info['rateDate'].strip().replace("\n","")
                    except:
                        comment_date = ""
                    # 评论内容
                    try:
                        comment = info['rateContent'].strip().replace("\n","").replace('\t','')
                    except:
                        comment = ""
                    print(user_name,user_status,comment_date,comment,sep='|',file=myfile)
                except:
                    sss = '爬取第%d页的第%d条评论失败,跳过爬取' % (i,tiaoshu)
                    print(sss)
                    pass
        except:
            print("该产品url获取失败,请检查")
    myfile.close()
    

    到此,爬虫的第二课——从json获取信息就结束了,以后会陆续退出selenium、异步加载、scrapy的使用教学和案例。敬请关注哈~

    展开全文
  • Python新手写出漂亮的爬虫代码1——从html获取信息

    万次阅读 多人点赞 2017-10-03 22:15:55
    Python新手写出漂亮的爬虫代码1初到大数据学习圈子的同学可能对爬虫都有所耳闻,会觉得是一个高大上的东西,仿佛九阳神功和乾坤大挪移一样,和别人说“老子会爬虫”,就感觉特别有逼格,但是又不知从何入手,这里,...
  • 这种新手都不会范的错,居然被一个工作好几年的小伙子出来,差点被当场开除了。
  • 如题 想一个爬虫 不知道怎么下手 从网上找了很久 不太清楚思路 求大神讲解
  • 几个新手入门代码

    千次阅读 2020-03-14 14:45:25
    几个简单的代码 Python的两种变成方式       交互式和文件式 ——交互式:对每个输入语句即时运行,适合语法练习 ——文件式:批量执行一组语句并执行结果,编程的主要方式 在开始...
  • 界面图 运行图 代码 加按钮里面的代码 减法按钮代码,只需改个符号就行 乘按钮代码,只需改个符号就行 需要注意 因为文字不能进行加减乘除,所以就需要加入异常处理来避免程序崩了
  • 编程新手编写代码注意事项

    千次阅读 2010-06-05 15:05:00
    ) 记得自己的第一份工作,再培训的时候Leader一再强调做任何事情都要第一次就把事情做好,当时给我们举的例子好像是:两个人在规定的时间写代码,第一个由于时间比较紧就没按照规范写,而是怎么规范就怎么写;...
  • 请问怎样加代码可以实现分页 public String cha() throws Exception { Connection conn = DbConnection.getConnection(); Statement stmt = null; try{ stmt = conn.createStatement(); ...
  • 菜鸡程序员都是怎样写代码的?

    万次阅读 多人点赞 2021-03-26 13:22:22
    每个程序员都要经历“菜鸡”这个阶段,那么,在菜鸡阶段,程序员是怎么写代码的呢?下面12大瞬间,能否找到你当初的影子? 01 命名不规范 可能不少程序员都会有这样的经历,写代码时灵光乍现,为了保证在灵感...
  • 一个好的程序员,会很快速的出框架代码,细节的可以让新手
  • 写代码的三重境界

    千次阅读 2012-09-30 12:03:24
    然而,新手写代码,牛人也在写代码,他们之间有什么区别?为何新人老手相互之间不理解?新手如何成长为牛人,老手如何百尺竿头更进一步?BDD、TDD为何兴起,又为何难以推行?软件研发公司的写代码能力提升为什么...
  • 这样程序运行的时候就会报空指针,有时候项目里边的业务逻辑可能会比较复杂如果测试不是疯狂的测试,有的逻辑将不能被走到,直到项目上线后台的某些设置会让程序走到可能报空指针的代码段,傻了吧! (2)、各种数值...
  • Python新手写程序没有思路怎么办?

    千次阅读 2018-08-03 14:37:04
    对于Python新手,在刚...出现以上的问题,主要是因为Python新手在学习时眼高手低,仅仅局限于对于代码的理解,很少进行实操,这就会导致想写代码,却写不出来,或者写出来了,由于对于细节的把控不到位,功能实现...
  • 网上找了半天,就是没找到解决方法,一堆帖子都在说下.net,重装.net,下mono啥的,搞半天还是不成。...我寻思我也按照方法一步步来的呀,怎么会没有... 如果只打开了单独的一个c#代码文件,那么就不会有自动提示。 就这样
  • Python3静态网页爬虫新手实践及代码、经验分享 在最前 在爬虫之前需要先配置python环境,爬取静态网页的文字及图片只需要通过pip安装Scrapy、beautifulsoup4 。(此处略去一万字,可以自行百度python3爬虫框架...
  • C#获得金山词霸在线版的单词,要翻译的,请问代码具体怎么,我新手完全不会,很急
  • 前端开发写代码哪个软件更好用?

    千次阅读 多人点赞 2019-11-13 10:59:52
    群里的朋友,经常问到web前端开发写代码用那个软件好?今天在这里统一回答下,主流的web前端开发写代码的软件有这些Webstorm、Vscode、Sublime Text、HBuilder、Dreamweaver、notepad++、editplus等,做前端这么多年...
  • 新手跟着写代码

    万次阅读 多人点赞 2014-02-22 21:24:04
    我学习了几天数据结构,今天下午自己了一个单向链表的程序。我也是新手,所以刚开始学习数据结构的菜鸟们(有大牛们能屈尊uY3Nkbi5uZXQvZmlzaGVyd2Fu/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/...
  • 电脑初学者怎么学习写代码?代码怎样写入电脑? 代码指的是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。简单理解代码就是代表某些意思的符号,...
  • Java新手、小白入门。多敲练习代码!!!

    万次阅读 多人点赞 2019-04-16 08:42:10
    我建议你没事的时候敲敲这些代码,希望对你有用! public class Demo{ public static void main(String[] args){ System.out.print("你好\n 世界"); System.out.println("你好\t Java"); System.out.println...
  • 如何优雅的写代码

    千次阅读 2018-02-02 23:29:24
    如何优雅的写代码 为什么别人的代码看起来那么优美,而我的代码就像一坨翔? 相信很多新人都会有这样的疑问吧,看各种框架的代码看着感(根)觉(本)特(看)别(不)溜(懂),而自己写出来的代码怎么看怎么...
  • 使用“不用写代码的IDE”是一种怎样的体验?

    千次阅读 多人点赞 2021-05-27 11:39:22
    可能有些人还不知道我指的是啥,以一款今年比较流行的全自动软件开发平台为例,所谓「全自动」,就是你在开发一个项目时,不需要你写代码,只需要你画好对应的逻辑流程图,平台便可以自动帮你生成对应的代码。...
  • 别死写代码,这 25 条比涨工资都重要

    万次阅读 多人点赞 2019-10-08 13:57:54
    点击上方“码农突围”,马上关注,每天早上8:50准时推送真爱,请置顶或星标来源:http://rrd.me/eucMA如果每个程序开发人员都只是周而复始地写代码,想必编程...
  • PHPStorm运行PHP代码新手教程)

    万次阅读 多人点赞 2018-06-26 08:51:48
    PHPStorm是流行对PHP及前端开发IDE,在开发者初次使用PHP代码时该怎么用呢~1、Create New Project2、选择PHP Empty Project,并新建一个空目录(目录不要放在C盘!!!)3、项目工程中,中刚刚创建对文件夹图标上...
  • 【送给新手】重复代码解决示例二

    千次阅读 2013-07-05 15:01:40
    举例说明了遇到重复代码应该如何去处理。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 153,187
精华内容 61,274
关键字:

新手如何写代码