视频地址:https://www.bilibili.com/video/BV1i54y1h75W
【0】说明与安装pyhon,自行安装即可,记得在安装界面选上pip与path
pip用于安装pyhon第三方库,path用于简便使用命令行调用python程序
【1】python基础
101-熟悉基本输入
input(),output()
因为我有c/c++基础,所以基本使用可以很快掠过

【2】基本网络操作
201-知道urllib获取百度首页
202-requests操作百度翻译sug获得json(重要)
pip install requests
203-搜狗查询周杰伦,学会设置ua

【3】正则表达式
在线正则测试网站
https://tool.oschina.net/regex
重要知识点:.除了换行符的所有字符
        [0123a-z]其中的任意一个字符
        *任意多个
        {n,m}最少n个,最多m个,都可以省略
        .*?惰性匹配
import re:导入re(正则)模块

list = re.findall,返回list,一般不使用
it = re.finditer,返回迭代器,可以用group()获取具体成员
re2 = re.compile(r"\d+"),预加载正则,以后的参数只需要字符串
data = re2.finditer("我的电话是213421,qq是3243");

r"<span.*?>(?P<name>.*?)</span>",re.S
(?P<分组名字>正则),print(it.group("name"))从正则中提取需要的字符串
re.S,让.可以匹配任意字符(包括换行符)
双引号含双引号:r"正则\"表达\"式",需要转义
单引号含双引号:r'正则"表达"式',不需要转义

【20211116】日【110609】秒
先到这里,以后再添加,如有错误,请指出,也欢迎一起讨论~

 

 

# 访问百度

# 导入url库

from urllib.request import urlopen



url = "http://www.baidu.com"

resp = urlopen(url)

# 打印信息到控制台

#print(resp.read())

# 也可以保存到文件

with open("baidu.html",mode = "w") as f:

    f.write(resp.read().decode("utf-8"))

# 获取用户输入,阻塞界面消失

input("按回车键结束")

 

 1 # 查百度翻译sug
 2 
 3 # 导入requests,需要先使用pip安装
 4 
 5 import requests
 6 
 7  
 8 
 9 # sug就是suggestion
10 
11 # sug数据结构比较简单,所以用来学习post
12 
13 url = 'https://fanyi.baidu.com/sug'
14 
15 # 查询用户输入的单词,并载入字典
16 
17 s = input("请输入你要查询的英文单词")
18 
19 dic = {
20 
21     "kw":s
22 
23 }
24 
25  
26 
27 resp = requests.post(url, data = dic)
28 
29 # resp.json()
30 
31 # 直接处理成json格式
32 
33 print(resp.json())
34 
35 resp.close()
36 
37 ### 最后面应该resp.close()
38 
39 ## 如果不关闭,可能被封ip!!!
40 
41  
# 查百度翻译sug
# 搜狗搜索周杰伦

import requests

 

# 加入一个字典,字典中的这个元素叫做ua,如果没有ua,那么会被反爬,导致你拿不到数据

dic = {"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.54 Safari/537.36 Edg/95.0.1020.30"}

 

# 需要爬的网址,就是用搜狗搜索“周杰伦”

url = 'http://www.sogou.com/web?query=周杰伦'

 

# 进行get请求时带上ua,

resp = requests.get(url, headers = dic)

print(resp)

print(resp.text)

 

resp.close()

 
# 搜狗搜索周杰伦
# 学习re表达式

import re

# list返回列表,效率不高,不建议使用

#list = re.findall(r"\d+","我的电话是123213213,qq是2343522345325")

#print (list)

 

# 返回迭代器,效率高,推荐使用

#it = re.finditer(r"\d+","我的电话是123213213,qq是2343522345325")

#for i in it:

#   print (i.group())

 

#(?P<group_name>.*?) re模块中通过组名获取指定数据的用法

s = """

<div class='glq'><span id='1'>郭麒麟</span></div>

<div class='zjl'><span id='2'>周杰伦</span></div>

<div class='zxz'><span id='3'>张信哲</span></div>

<div class='jt'><span id='4'>景天</span></div>

"""

re2 = re.compile(r"<span.*?>(?P<name>.*?)</span>")

result= re2.finditer(s)

for i in result:

    print(i.group("name"))

 
# 学习re表达式

 

Posted on 2021-12-03 23:27  污钞vtor  阅读(26)  评论(0编辑  收藏  举报