1.TCP

#1 服务端 server.py

import socket

host = '127.0.0.1' # 设置ip

port = 9000 # 设置端口

# 创建socket对象

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.bind((host, port)) # 绑定ip和端口

s.listen(5) # 等待客户端连接

print("开始监听...")

while True:

c, addr = s.accept() # 建立客户端连接

print('客户端地址:', addr)

data = c.recv(2048)

print("消息:", data.decode('utf-8'))

c.send(b'Welcome to connect!')

c.close() # 关闭连接

#2 客户端 client.py

import socket

host = '127.0.0.1'

port = 9000

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect((host, port))

s.send(b'Hello')

data, addr = s.recvfrom(1024)

print(data.decode('utf-8'))

s.close()

2.UDP

#1 server.py

import socket

host = '127.0.0.1' # 设置ip

port = 9000 # 设置端口

# 创建socket对象

s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

s.bind((host, port))

while True:

data, addr = s.recvfrom(1024)

print('server收到来自 {} 的消息:'.format(addr), data)

s.sendto(data.upper(), addr)

s.close()

#2 client.py

import socket

host = '127.0.0.1' # 设置ip

port = 9000 # 设置端口

c = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)

c.sendto(b'hello', (host, port))

data, addr = c.recvfrom(1024)

print('客户端收到来自 {} 的消息:'.format(addr), data)

c.close()

3.requests

import requests

#1 返回值

r = requests.get('https://www.baidu.com')

r.status_code # 状态码

r.text # HTML源码

r.content # 网页二进制内容

r.json # json文件

r.headers # 返回的headers

r.request.headers # 请求的headers

r.cookies # 获取cookies

r.encoding # 从header中猜测的编码

r.apparent_encoding # 从内容分析的编码

r.raise_for_status() # 状态码不是200触发异常

#2 get请求

headers = {'User-Agent': 'Mozilla/5.0'}

payload = {'key': 'value'}

cookies = dict(mycookies='mycookies')

requests.get(url, headers=headers, params=payload, cookies=cookies, timeout=5)

#3 post请求

payload = {'key': 'value'}

requests.post(url, data=payload)

requests.post(url, data=json.dumps(payload))

files = {'file': open('test.txt', 'rb')}

requests.post(url, files=files) # 上传文件

#4 proxies代理

proxies = {'https': 'http://x.x.x.x:8000'}

requests.post(url, proxies=proxies)

4.selenium

# pip install selenium

# 下载ChromeDriver,放置在代码同目录下即可

#1 基本使用

from selenium import webdriver

from selenium.webdriver.common.keys import Keys

from selenium.webdriver.common.by import By

browser = webdriver.Chrome()

browser.get("https://www.baidu.com")

print(browser.current_url)

print(browser.get_cookies())

print(browser.page_source) # 获取HTML源码

# 通过id获取元素

element = browser.find_element_by_id("kw")

print(element.id) # 获取ID

print(element.text) # 获取文本

print(element.location) # 获取位置

print(element.tag_name) # 获取标签名

print(element.size) # 获取大小

print(element.get_attribute('class')) # 获取属性

# 向元素输入内容

element.send_keys("Python")

element.send_keys(Keys.ENTER) # 模拟回车键

element.clear() # 清除内容

# 通过Xpath获取元素

element = browser.find_element(By.XPATH, '//*[@id="su"]')

element.click() # 模拟点击

#2 wait等待

from selenium import webdriver

from selenium.webdriver.common.by import By

from selenium.webdriver.support.ui import WebDriverWait

from selenium.webdriver.support import expected_conditions as EC

from selenium.common.exceptions import TimeoutException

SERVICE_ARGS = ['--load-images=false', '--disk-cache=true']

browser = webdriver.PhantomJS(service_args=SERVICE_ARGS)

browser.set_window_size(1400, 900)

# 实现页面等待的对象

wait = WebDriverWait(browser, 10)

def search(url):

try:

browser.get(url)

# 等待指定的元素加载

element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "#kw")))

except TimeoutException:

search(url)

search('https://www.baidu.com')

5.BeautifulSoup

from bs4 import BeautifulSoup

import re

html_doc = '''

百度一下,你就知道

新闻

hao123

地图

视频

贴吧

'''

#1 创建BeautifulSoup对象

soup = BeautifulSoup(html_doc, 'html.parser')

# 获取格式化html内容

print(soup.prettify())

#2 获取第一个匹配标签a的内容

print(soup.a)

# 新闻

# 返回标签a属性class的值

print(soup.a['class'])

# ['mnav']

# 返回标签a属性的字典

print(soup.a.attrs)

# {'class': ['mnav'], 'href': 'http://news.baidu.com', 'id': 'news'}

# 返回标签a的内容

print(soup.a.string)

# 新闻

#3 CSS选择器,返回列表

print(soup.select('#map'))

# [地图]

print(soup.select('div a[id="map"]'))

# [地图]

#4 find_all()搜索

print(soup.find_all('a', id='video'))

# [视频]

print(soup.find_all(re.compile("^a")))

# [新闻, hao123, 地图, 视频, 贴吧]

# find_all()搜索文档中的字符串

print(soup.find_all(text=re.compile("^贴")))

# ['贴吧']

# find_all()传自定义方法搜索

def func(tag):

return tag.has_attr('class') and not tag.has_attr('id')

print(soup.find_all(func))

# [hao123]

6.PyQuery

from pyquery import PyQuery as pq

from lxml import etree

html_doc = '''

百度一下,你就知道

新闻

hao123

地图

视频

贴吧

'''

#1 初始化

doc = pq(etree.fromstring(html_doc))

#2 CSS选择器

item = doc('#news')

print(item.attr('href'))

# http://news.baidu.com

print(item.text())

# 新闻

#3 链式使用

items = doc('#u1').find('a').items()

for item in items:

print(item.text())

# 新闻 hao123 地图 视频 贴吧

python语法中的网络编程_(六)python语法之网络编程相关推荐

  1. python线程中再起线程_多线程 - Python中的线程化

    关于Kamaelia,上面的答案并没有真正涵盖这里的好处. Kamaelia的方法提供了一个统一的界面,这个界面非常实用,用于处理线程,生成器和处理器. 单个系统中的进程用于并发. 从根本上说,它提供 ...

  2. python函数中self的作用_在Python中self的用途是什么?

    如果您使用的是Python,那么"自我"一词是无法逃避的.它用于方法定义和变量初始化中.每次定义方法时,都会显式使用self方法.在本文中,我们将按以下顺序深入了解Python的自 ...

  3. python控制语句中的条件语句_『Python』条件控制语句

    Loading... ## 1. 条件语句 ``` Python条件语句是通过一条或者多条语句的执行结果(True或False)来决定执行的代码块. ``` ``` 在Python中, 指定任何非0和 ...

  4. 下列python保留字中、用于异常处理_下列Python保留字中,用于异常处理结构中用来捕获特定类型异常的是...

    下列Python保留字中,用于异常处理结构中用来捕获特定类型异常的是 答:except 在罗马共和国后期,西班牙地区被凯撒征服并占领了.() 答:× 维拉帕米不用于治疗 答:慢性心功能不全 按照交通环 ...

  5. python文件中单词的删除_使用python删除文件中的多余单词

    嗨,我正在学习Python,出于好奇,我编写了一个程序来删除文件中多余的单词. 我正在比较文件text1.txt中的测试.和'text2.txt',基于text1中的测试,我删除了test2中多余的单 ...

  6. python教程400集笔记,Python学习中的笔记--集合相关,python笔记--集合

    Python学习中的笔记--集合相关,python笔记--集合 集合的基本操作 一.可修改的集合set 创建集合 var = set() var = {'a','b','c','d'} 成员检测 va ...

  7. python中的递归思想_〖Python〗-- 递归、面向对象初识及编程思想

    [递归.面向对象初识及编程思想] 一.递归 1.定义: 在函数内部,可以调用其他函数.如果一个函数在内部调用自身本身,这个函数就是递归函数. (1)递归就是在过程或函数里调用自身: (2)在使用递归策 ...

  8. python爬取百度贴吧中的所有邮箱_使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号...

    原标题:使用 Python 编写多线程爬虫抓取百度贴吧邮箱与手机号 不知道大家过年都是怎么过的,反正栏主是在家睡了一天,醒来的时候登QQ发现有人找我要一份贴吧爬虫的源代码,想起之前练手的时候写过一个抓 ...

  9. python 网页编程_通过Python编程检索网页

    python 网页编程 The internet and the World Wide Web (WWW), is probably the most prominent source of info ...

最新文章

  1. C++关键字volatile
  2. MPB:浙大王佳堃组瘤胃微生物移植(视频)
  3. Markdown编辑器“MarkdownPad”下载安装(图)
  4. LNMP架构环境搭建之PHP、Nginx源码编译安装及其简单配置应用
  5. 安装Orcale 10g SP3时报oui.exe异常错误
  6. python中long类型的取值范围_java基本数据类型取值范围
  7. Addin and Automation Development In VB.NET 2003 (3)
  8. java中产生死锁的原因及如何避免
  9. 地摊叫卖、超市播音工具-简洁的文字转语音播音软件
  10. Himly TCC Dubbo 程序示例
  11. 推荐系统组队学习——协同过滤
  12. python读取文本数据--完善中
  13. 拓客系统专用服务器,北京拓客系统
  14. mt4双线macd_指标小课堂|学院首创!独家手机MT4双线MACD指标设置教程
  15. bootdo框架切换tab标签时自动刷新,无需手动刷新
  16. 手把手教你制作gif动图,一分钟轻松学会
  17. Cocos Creator下JavaScript模拟砸金蛋3d旋转效果,附代码
  18. 专访京东科技张亮:本土开源需形成吸纳开发者的靶心
  19. 华为数字化转型与数据管理实践介绍 附下载
  20. jstack 命令使用经验总结和线程性能诊断脚本

热门文章

  1. ecshop 支持 php,ecshop支持PHP7的修改方法
  2. 简单java登录页面android_Android 之路 - RxJava2+Retrofit实现简单登陆
  3. 佳能9100cdn故障_佳能 打印机故障代码大全
  4. python寻找完全平方数_少儿编程|Python小课堂 – 寻找aabb完全平方数
  5. windowslinux服务器性能对比,Windows/Linux服务器的选择与对比
  6. 第 0001 天:聊聊成长型思维模式者
  7. 如果不当程序员,我可以生活的更好么?
  8. 10分钟学会数据库压力测试
  9. 360网神防火系统 配置端口映射_IIS配置证书端口443无法访问
  10. Iso时间转java instant,Java /将ISO-8601(2010-12-16T13:33:50.513852Z)转换为