找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3856|回复: 5

[代码与实例] 看到一个快递查询程序,写了点注释,请大家指教

1

主题

2

帖子

2

积分

贫民

积分
2
lyz800903 发表于 2020-3-20 11:27:42 | 显示全部楼层 |阅读模式
  1. import requests#它是一个Python第三方库,处理URL资源特别方便
  2. import bs4#BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码
  3. import re#re 模块使 Python 语言拥有全部的正则表达式功能
  4. import yagmail#导入邮件模块


  5. def express_type_get():#因此我们需要再写一个函数来生成更多快递公司的查询链接,
  6.     express_type = ('sfexpress', 'yunda', 'sto', 'yto', 'zto', 'ems', 'ttdex', 'htky', 'qfkd', 'chinapost')#定义一个元组放入各个快递公司的名称
  7.     print(
  8.         '////////////////快递公司////////////////\n1.顺丰 2.韵达 3.申通 4.圆通 5.中通\n6.EMS 7.天天 8.汇通 9.全峰 10.邮政\n////////////////////////////////////////')
  9.     while True:
  10.         express = int(input('请选择快递公司(数字):'))要求输入快递公司的代号数字
  11.         if express:#这个条件判断语句等价于if express!=0
  12.             if express <= 10 and express >= 1:
  13.                 break#如果快递公司的编号小于等于10并且大于等于1则跳出循环
  14.             else:#负责显示“错误的选择”
  15.                 print("错误的选择!")
  16.         else:
  17.             print("不能为空!")#如果判断express是等于0则输出“不能为空!”
  18.     return code == express_type[express - 1]#确定是哪个快递公司并将快递公司名称返回


  19. def get_url(code, id):#定义获取一个网址并加快递公司名称及快递编号
  20.     url = 'http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=' + code + '&number=' + id

  21.     return url#返回加入快递公司名称及编号的网址
  22. def send(kuaidi):#将取到的快递信息发送到我的邮箱的函数
  23.     yag = yagmail.SMTP( user="登陆邮箱", password="密码", host='smtp.qq.com')#将用户名、密码、主机指定并采用STMP方式
  24.     # 邮箱正文
  25.     contents = kuaidi#邮件的内容就是快递的内容
  26.     # 发送邮件
  27.     yag.send('目标邮箱', '最新快递追踪', contents)#发送邮件需要目标邮箱、标题就是“最新快递追踪”内容就是contents = kuaidi
  28.     print('邮件发送成功')#显示发送成功

  29. 看到别人的代码,学着写了点注释,请大家帮我改改
  30. def main ():


  31. ///用requests+bs4爬结果和提取我们需要的目标信息,当然注意到这只是中通快递的查询链接
  32. kuaidi = []
  33. url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=zto&number=你的单号'#快递为中通单号为“你的单号”
  34. resp**e = requests.get(url)#用于请求目标网站,并将请求到的网站代码给RESP**E
  35. resp**e.encoding = 'gb18030'#请求的代码的编码方式指定为GB18030
  36. resp**e = resp**e.text#返回输出网页的内容,解决乱码问题
  37. soup = bs4.BeautifulSoup(resp**e,'html.parser',from_encoding="utf8")#将respones解析,制定解析器为html.parser编码格式为utf8
  38. for i in soup.findAll(name='div',attrs = {'class':'icontent'}):#将网页中DIV目录下的属性class':'icontent的值遍历赋给I
  39.     kuaidi.append(i.get_text())#将I获取的文本加入到快递列表中
  40.     print(i.get_text())#打印I获取的快递文本内容
  41. if __name__=='__main__':
  42.    main()
复制代码

回复

使用道具 举报

1

主题

2

帖子

2

积分

贫民

积分
2
lyz800903  楼主| 发表于 2020-3-20 11:31:01 | 显示全部楼层
怎么样,是不是头尾不接
回复 支持 反对

使用道具 举报

0

主题

34

帖子

34

积分

贫民

积分
34
一叶落而知秋 发表于 2020-3-23 13:35:07 | 显示全部楼层
很想知道你这个注释有啥用?
注释值给关键的地方的输入,输入和参数进行的,不是针对每一行都注释
回复 支持 反对

使用道具 举报

0

主题

6

帖子

6

积分

贫民

积分
6
宁信度 发表于 2020-7-6 19:12:08 | 显示全部楼层
这样的注释对我们这种毫无基础的人非常友好。感谢!
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
James_cook 发表于 2022-3-26 22:42:35 | 显示全部楼层
我喜欢这样的注释真的  看的特别的清楚  明了  爱了爱了  love
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
ljw_0125 发表于 2022-3-28 02:01:28 | 显示全部楼层
import requests#它是一个Python第三方库,处理URL资源特别方便
import bs4#BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码
import re#re 模块使 Python 语言拥有全部的正则表达式功能
import yagmail#导入邮件模块


def express_type_get():#因此我们需要再写一个函数来生成更多快递公司的查询链接,
    express_type = ('sfexpress', 'yunda', 'sto', 'yto', 'zto', 'ems', 'ttdex', 'htky', 'qfkd', 'chinapost')
    #定义一个元组放入各个快递公司的名称
    print(
        '////////////////快递公司////////////////\n1.顺丰 2.韵达 3.申通 4.圆通 5.中通\n6.EMS 7.天天 8.汇通 9.全峰 10.邮政\n////////////////////////////////////////')
    while True:
        express = int(input('请选择快递公司(数字):')) #要求输入快递公司的代号数字
        if express:#这个条件判断语句等价于if express!=0
            if express <= 10 and express >= 1:
                break#如果快递公司的编号小于等于10并且大于等于1则跳出循环
            else:#负责显示“错误的选择”
                print("错误的选择!")
        else:
            print("不能为空!")#如果判断express是等于0则输出“不能为空!”
    return code == express_type[express - 1]#确定是哪个快递公司并将快递公司名称返回


def get_url(code, id):#定义获取一个网址并加快递公司名称及快递编号
    url = 'http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=' + code + '&number=' + id

    return url#返回加入快递公司名称及编号的网址
def send(kuaidi):#将取到的快递信息发送到我的邮箱的函数
    yag = yagmail.SMTP( user="登陆邮箱", password="密码", host='smtp.qq.com')#将用户名、密码、主机指定并采用STMP方式
    # 邮箱正文
    contents = kuaidi#邮件的内容就是快递的内容
    # 发送邮件
    yag.send('目标邮箱', '最新快递追踪', contents)#发送邮件需要目标邮箱、标题就是“最新快递追踪”内容就是contents = kuaidi
    print('邮件发送成功')#显示发送成功

#看到别人的代码,学着写了点注释,请大家帮我改改
def main ():


    #用requests+bs4爬结果和提取我们需要的目标信息,当然注意到这只是中通快递的查询链接
    kuaidi = []
    url='http://m.46644.com/express/result.php?typetxt=%D6%D0%CD%A8&type=zto&number=你的单号'#快递为中通单号为“你的单号”
    respp = requests.get(url)#用于请求目标网站,并将请求到的网站代码给respp
    respp.encoding = 'gb18030'#请求的代码的编码方式指定为GB18030
    respp = respp.text#返回输出网页的内容,解决乱码问题
    soup = bs4.BeautifulSoup(respp,'html.parser',from_encoding="utf8")#将respones解析,制定解析器为html.parser编码格式为utf8
    for i in soup.findAll(name='div',attrs = {'class':'icontent'}):#将网页中DIV目录下的属性class':'icontent的值遍历赋给I
        kuaidi.append(i.get_text())#将I获取的文本加入到快递列表中
        print(i.get_text())#打印I获取的快递文本内容
if __name__=='__main__':
    main()
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表