一、python 连接测试URL
- 运行环境: python3.7 win7x64
- 使用工具: VS Code
- python 第三方库: requests (自行安装 >>> cmd --->pip install requests, 具体不做介绍)
- requests 库简介
- ① 导入库
-
from requests import get
② 设定url, 并使用get方法请求页面得到响应
url = "http://www.baidu.com"r = get(url, timeout=3)print("获得响应的状态码:", r.status_code)print("响应内容的编码方式:", r.encoding)
运行结果:
获得响应的状态码: 200
响应内容的编码方式: ISO-8859-1③ 获取网页内容
url_text = r.textprint("网页内容:", r.text)print("网页内容长度:", len(url_text))
运行结果:
网页内容: <!DOCTYPE html><!--STATUS OK--><html> <head> ... 京ICPè¯030173å· ... </body> </html>
网页内容长度: 2381
④ 重新获取网页内容
r.encoding = "utf-8"url_text = r.textprint("网页内容:", r.text)print("网页内容长度:", len(url_text))
运行结果:
网页内容: <!DOCTYPE html> <!--STATUS OK--><html> <head> ... 意见反馈</a> 京ICP证030173号 <img src=//www.baidu.com/img/gs.gif> </p> </div> </div> </div> </body> </html>
网页内容长度: 2287
二、python 疯狂连接URL
- 使用上述的连接测试 "经验", 找个网站进行疯狂连接
- 在此,选取搜狗网站
- 上代码
url = "http://www.sogou.com" # 搜狗for i in range(200): print("Test %d:" % (i+1), end=" ") response = get(url, timeout=5) # 判断连接状态 if response.status_code == 200: print("Conncect successful!") else: print("Conncect UNsuccessful!")
运行结果:
Test 1: Conncect successful!
Test 2: Conncect successful!Test 3: Conncect successful!Test 4: Conncect successful!Test 5: Conncect successful!................
Test 199: Conncect successful!
Test 200: Conncect successful!三、获取网页的各个属性标签内容
(我也不知道这个标题什么意思, 感觉很牛但看不懂, 才怪呢!你肯定看得懂!)
这里,选取一个很厉害的网站做演示
URL =
步骤说明:
1. 找个url, 上面有了, 其实随便一个都是OK的
2. 抓取网页内容,这个上面有详解,不难
3. 本次使用 BeautifulSoup 第三方库,需要自行下载【】
4. 开工
前面提供了 URL,现在抓取网页内容
1 # -*- encoding:utf-8 -*- 2 from requests import get 3 def getText(url): 4 try: 5 r = get(url, timeout=5) 6 r.raise_for_status() 7 r.encoding = 'utf-8' 8 return r.text 9 except Exception as e:10 print("Error:", e)11 return ''
from bs4 import BeautifulSoup
1 url = "https://www.runoob.com/"2 html = getText(url)3 soup = BeautifulSoup(html)
① 获取 head 标签
print("head:", soup.head)print("head:", len(soup.head))
由于结果比较多,就只输出第二个结果
head: 33
② 获取 body 标签
print("body:", soup.body)print("body:", len(soup.body))
由于结果比较多,就只输出第二个结果
body: 39
③ 获取 title 标签
print("title:", soup.title)
title: <title>菜鸟教程 - 学的不仅是技术,更是梦想!</title>
④ 获取 title 的内容
print("title_string:", soup.title.string)
title_string: 菜鸟教程 - 学的不仅是技术,更是梦想!
⑤ 查找特定 id 的内容
print("special_id:", soup.find(id='cd-login'))
special_id: <div id="cd-login"> <!-- 登录表单 -->
<div class="cd-form"><p class="fieldset"> ......⑥ 查找所有的 a 标签
a: [<a href="/">菜鸟教程 -- 学的不仅是技术,更是梦想!</a>, <a class="current" data-id="index" href="//www.runoob.com/" title="菜鸟教程">首页</a>, ......
⑦ 摘取所有的中文字符
1 import re2 def getChinese(text):3 text_unicode = text.strip() # 将字符串进行处理, 包括转化为unicode4 string = re.compile('[^\u4e00-\u9fff]')5 # 中文编码范围是 \u4e00-\u9ffff6 # 中文、数字编码范围是 \u4e00-\u9fa507 chinese = "".join(string.split(text_unicode))8 return chinese
print("Chinese:", getChinese(html))