免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: yestreenstars

作为一名Python爱好者,你懂网络编程吗? [复制链接]

论坛徽章:
10
CU大牛徽章
日期:2013-09-18 15:20:48程序设计版块每日发帖之星
日期:2016-07-21 06:20:00IT运维版块每日发帖之星
日期:2015-07-30 09:40:01技术图书徽章
日期:2014-10-14 16:00:43天蝎座
日期:2013-09-27 17:41:29CU大牛徽章
日期:2013-09-18 15:21:17CU大牛徽章
日期:2013-09-18 15:21:12CU大牛徽章
日期:2013-09-18 15:21:06CU大牛徽章
日期:2013-09-18 15:20:58每日论坛发贴之星
日期:2016-07-21 06:20:00
发表于 2015-01-16 08:32 |显示全部楼层
1.说说你对TCP/IP协议的了解有多少。
TCP/IP详解,虽然发行了二十多年,但还是很有反复研读的意义

2.说说你对Python基础知识的了解有多少。
python不同版本之间代码的转换实在是太痛苦了。

3.说说你读完本章节后的感谢。(图书链接在下方)
这本书还是比较详细地介绍了python的网络库,是新手入门不错的选择。
能看完第一章,只要有心,可以适合绝大部分网络通信场合。
建议新手在阅读前掌握一些python的常用语法


4.请给出一段跟网络编程相关的Python代码并简单说明一下它的功能
packed_ip_addr = socket.inet_aton(ip_addr)
unpacked_ip_addr = socket.inet_ntoa(packed_ip_addr)
这一对函数可能是初学者最难搞清的部分了。
因为在各类网络函数中的地址都是packed_ip_addr
要在调试等场合转换成字符型式的才能输出。



论坛徽章:
0
发表于 2015-01-16 11:20 |显示全部楼层
谢谢大家分享,多向大家学习。

论坛徽章:
5
子鼠
日期:2014-05-15 13:49:32子鼠
日期:2014-07-16 11:16:45卯兔
日期:2014-07-17 11:34:49巨蟹座
日期:2014-07-21 12:05:002015亚冠之柏太阳神
日期:2015-07-30 16:26:53
发表于 2015-01-16 17:36 |显示全部楼层
星辰大神玩Python了,牛,学习了。

论坛徽章:
24
天蝎座
日期:2014-05-13 18:05:59IT运维版块每日发帖之星
日期:2015-11-26 06:20:00操作系统版块每月发帖之星
日期:2015-12-02 14:57:54IT运维版块每月发帖之星
日期:2016-01-07 23:01:56IT运维版块每周发帖之星
日期:2016-01-07 23:04:2615-16赛季CBA联赛之青岛
日期:2016-01-23 07:58:272016猴年福章徽章
日期:2016-02-18 15:30:3415-16赛季CBA联赛之北控
日期:2016-03-23 14:20:06IT运维版块每日发帖之星
日期:2016-04-01 06:20:0015-16赛季CBA联赛之吉林
日期:2016-06-28 13:51:54IT运维版块每日发帖之星
日期:2016-07-01 06:20:00IT运维版块每日发帖之星
日期:2015-11-23 06:20:00
发表于 2015-01-16 18:50 |显示全部楼层
支持一下,好活动~~

论坛徽章:
32
处女座
日期:2013-11-20 23:41:20双子座
日期:2014-06-11 17:20:43戌狗
日期:2014-06-16 11:05:00处女座
日期:2014-07-22 17:30:47狮子座
日期:2014-07-28 15:38:17金牛座
日期:2014-08-05 16:34:01亥猪
日期:2014-08-18 13:34:25白羊座
日期:2014-09-02 15:03:55金牛座
日期:2014-11-10 10:23:58处女座
日期:2014-12-02 09:17:52程序设计版块每日发帖之星
日期:2015-06-16 22:20:002015亚冠之塔什干火车头
日期:2015-06-20 23:28:22
发表于 2015-01-16 23:38 |显示全部楼层
回复 25# 机智的小学生


   

论坛徽章:
0
发表于 2015-01-17 01:44 |显示全部楼层
本帖最后由 sense565 于 2015-01-17 01:46 编辑

本人学生党, 目前就在学习python 才学习了几天。 我看到各位大神的回复觉得很好。
我本不想来回复的,可是我不想因为别人比我厉害而放弃这1%的机会。 思考了好久才来回答真实的一面!



1.说说你对TCP/IP协议的了解有多少
  实话实说:我只是简略的看过书中的解释,并没有深入的了解, 你要这么问我 我真的答不出来

2.说说你对Python基础知识的了解有多少。
我只学过几天,我只能把学习的笔记发出来:

2015-01-17 01:34:33 的屏幕截图.png

2.png


学完基础->网络编程->安全编程   这便是我的方向

3.说说你读完本章节后的感谢。(图书链接在下方)
并不想评论书的好与坏!  能学到就行!

现在来说说一个完全没有基础的人看完第一章的感受:
我是听说Python很强大, 当我看完这个本书的目录才发比想象中还要强大!( 其实我吹不下去了拉! 我完全没有看懂呀! )


4.请给出一段跟网络编程相关的Python代码并简单说明一下它的功能。

没有像上面大神写这么牛X。 我也只能把我会的写出来摆了!
  1. import socket

  2. host="www.***.com"
  3. port=80

  4. client=socket.socket(socket.AF_INET,socket.SOCK_STREAM)

  5. client.connect((host,port))

  6. client.send("GET / HTTP/1.1\r\nHost:***.com\r\n\r\n")

  7. response=client.recv(4096)

  8. print response

复制代码

论坛徽章:
0
发表于 2015-01-17 01:45 |显示全部楼层
回复 22# bskay


    都写的这么厉害了,还跟我们这些菜鸟抢什么

论坛徽章:
3
白羊座
日期:2014-08-25 15:04:112014年中国系统架构师大会
日期:2014-10-14 15:59:002015元宵节徽章
日期:2015-03-06 15:52:30
发表于 2015-01-17 19:33 来自手机 |显示全部楼层
在学这个,不懂来学习

论坛徽章:
3
CU十二周年纪念徽章
日期:2013-10-24 15:41:34双子座
日期:2014-03-02 00:11:39fulanqi
日期:2016-06-17 17:54:25
发表于 2015-01-18 23:14 |显示全部楼层
本帖最后由 chszs 于 2015-01-18 23:24 编辑

1.说说你对TCP/IP协议的了解有多少。
我自认为已经掌握了TCP/IP协议的基础知识。
用两幅图来说明这一点。
TCP IP分层与OSI对应关系
TCP IP分层与OSI对应关系.jpg
TCP IP协议簇
TCP IP协议簇.jpg

2.说说你对Python基础知识的了解有多少。
到目前为止,我仍不敢说我精通了Python。
Python的基础知识我是具备的,用个图来说明:
Python对象基础
Python对象基础.png
但是Python可以用在很多领域,有无数高质量的第三方库,这些库也是需要学习的内容。
比如Python在大数据领域就有很多库,如图所示:
Python大数据
Python大数据.png
看了这个,谁还敢说自己精通Python呢?这仅仅是Python在大数据领域的举例,其他的领域还多着呢。

3.说说你读完本章节后的感谢。(图书链接在下方)
感谢图灵出版社发行的Python网络编程攻略。
图灵出版社一贯以出版高质量书籍著称,我对这个出版社很有信心。
试读仅提供了第1章《套接字、IPv4和简单的客户端/服务器编程》的内容,感觉内容有点少,很想继续深入。
这本书能很好地提高我在网络编程领域的水平,图灵的书真不赖。


4.请给出一段跟网络编程相关的Python代码并简单说明一下它的功能。
下面我列举一个基于Python的爬虫库Scrapy库的使用例子:
Spider是一个继承自scrapy.contrib.spiders.CrawlSpider的Python类,有三个必需的定义的成员
1)name: 名字,这个spider的标识
2)start_urls:一个url列表,spider从这些网页开始抓取
3)parse():一个方法,当start_urls里面的网页抓取下来之后需要调用这个方法解析网页内容,同时需要返回下一个需要抓取的网页,或者返回items列表
  1. import re
  2. import json


  3. from scrapy.selector import Selector
  4. try:
  5.     from scrapy.spider import Spider
  6. except:
  7.     from scrapy.spider import BaseSpider as Spider
  8. from scrapy.utils.response import get_base_url
  9. from scrapy.utils.url import urljoin_rfc
  10. from scrapy.contrib.spiders import CrawlSpider, Rule
  11. from scrapy.contrib.linkextractors.sgml import SgmlLinkExtractor as sle


  12. from itzhaopin.items import *
  13. from itzhaopin.misc.log import *


  14. class TencentSpider(CrawlSpider):
  15.     name = "tencent"
  16.     allowed_domains = ["tencent.com"]
  17.     start_urls = [
  18.         "hr.tencent.com/position.php"
  19.     ]
  20.     rules = [ # 定义爬取URL的规则
  21.         Rule(sle(allow=("/position.php\?&start=\d{,4}#a")), follow=True, callback='parse_item')
  22.     ]

  23.     def parse_item(self, response): # 提取数据到Items里面,主要用到XPath和CSS选择器提取网页数据
  24.         items = []
  25.         sel = Selector(response)
  26.         base_url = get_base_url(response)
  27.         sites_even = sel.css('table.tablelist tr.even')
  28.         for site in sites_even:
  29.             item = TencentItem()
  30.             item['name'] = site.css('.l.square a').xpath('text()').extract()
  31.             relative_url = site.css('.l.square a').xpath('@href').extract()[0]
  32.             item['detailLink'] = urljoin_rfc(base_url, relative_url)
  33.             item['catalog'] = site.css('tr > td:nth-child(2)::text').extract()
  34.             item['workLocation'] = site.css('tr > td:nth-child(4)::text').extract()
  35.             item['recruitNumber'] = site.css('tr > td:nth-child(3)::text').extract()
  36.             item['publishTime'] = site.css('tr > td:nth-child(5)::text').extract()
  37.             items.append(item)
  38.             #print repr(item).decode("unicode-escape") + '\n'

  39.         sites_odd = sel.css('table.tablelist tr.odd')
  40.         for site in sites_odd:
  41.             item = TencentItem()
  42.             item['name'] = site.css('.l.square a').xpath('text()').extract()
  43.             relative_url = site.css('.l.square a').xpath('@href').extract()[0]
  44.             item['detailLink'] = urljoin_rfc(base_url, relative_url)
  45.             item['catalog'] = site.css('tr > td:nth-child(2)::text').extract()
  46.             item['workLocation'] = site.css('tr > td:nth-child(4)::text').extract()
  47.             item['recruitNumber'] = site.css('tr > td:nth-child(3)::text').extract()
  48.             item['publishTime'] = site.css('tr > td:nth-child(5)::text').extract()
  49.             items.append(item)
  50.             #print repr(item).decode("unicode-escape") + '\n'

  51.         info('parsed ' + str(response))
  52.         return items


  53.     def _process_request(self, request):
  54.         info('process ' + str(request))
  55.         return request
复制代码

求职 : 系统工程师等
论坛徽章:
5
技术图书徽章
日期:2014-04-19 22:01:05天蝎座
日期:2014-05-09 13:49:28双子座
日期:2014-06-16 15:08:042015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:55:28
发表于 2015-01-19 09:23 |显示全部楼层
回复 31# chszs


    大神啊!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP