xml地图|网站地图|网站标签 [设为首页] [加入收藏]
5i5j房屋信息,存储之卷
分类:编程

 1 from lxml import etree
 2 from selenium import webdriver
 3 import pymysql
 4 
 5 def Geturl(fullurl):#获取每个招聘网页的链接
 6     browser.get(fullurl)
 7     shouye_html_text = browser.page_source
 8     shouye_ele = etree.HTML(shouye_html_text)
 9     zf_list = shouye_ele.xpath('/html/body/div[4]/div[1]/div[2]/ul/li/div/h3/a/@href')#链接url
10     zf_url_list  = []
11     for zf_url_lost in zf_list:
12         zf_url  = 'https://bj.5i5j.com'+zf_url_lost
13         zf_url_list.append(zf_url)
14     return zf_url_list
15 def Getinfo(zp_url_list):
16     for zp_url in zp_url_list:
17         browser.get(zp_url)
18         zp_info_html = browser.page_source
19         zp_ele = etree.HTML(zp_info_html)
20         zp_info_title = str(zp_ele.xpath('//html/body/div[3]/div[1]/div[1]/h1/text()')[0])
21         zp_info_num = str(zp_ele.xpath('/html/body/div[3]/div[2]/div[2]/div[1]/div[1]/div/p[1]/text()')[0])+'元/月'#价格
22         zp_info_type = str(zp_ele.xpath('/html/body/div[3]/div[2]/div[2]/div[1]/div[2]/div/p[1]/text()')[0])#户型
23         zp_info_zone = str(zp_ele.xpath('/html/body/div[3]/div[2]/div[2]/div[1]/div[3]/div/p[1]/text()')[0])+'平米'#房屋大小
24         zp_info_need_1 = str(zp_ele.xpath('/html/body/div[3]/div[2]/div[2]/div[2]/ul/li[1]/span/text()')[0])#房屋信息
25         zp_info_need_2 = str(zp_ele.xpath('/html/body/div[3]/div[2]/div[2]/div[2]/ul/li[1]/a/text()')[0])#房屋信息
26         zp_info_need = zp_info_need_1+zp_info_need_2
27         connection = pymysql.connect(host='localhost', user='root', password='1234', db='5i5j', )
28         try:
29             with connection.cursor() as cursor:
30                 sql = "INSERT INTO `5i5j_info` (`title`,`num`,`type`, `zone`,`need`) VALUES (%s,%s,%s,%s, %s)"
31                 cursor.execute(sql, (zp_info_title,zp_info_num,zp_info_type,zp_info_zone,zp_info_need))
32             connection.commit()
33         finally:
34             connection.close()
35         print(zp_info_title,zp_info_num,zp_info_type,zp_info_zone,zp_info_need)
36 if __name__ == '__main__':
37     browser = webdriver.Chrome()
38     pags = int(input('需要几页?'))
39     for i in range(1,pags+1):
40         url = 'https://bj.5i5j.com/zufang/huilongguan/n{}/'
41         fullurl = url.format(str(i))
42         zf_url_list = Geturl(fullurl)
43         print(fullurl)
44         # print(zf_url_list)
45         Getinfo(zf_url_list)
46     browser.close()

(1)Docker 安装及基本用法

*—*—python开发基础(2)—*—*
一、while循环
1.while条件:
    循环体
    若条件满足,循环体执行
    若条件不满足,循环体不执行
    例:number = 1                    #输出结果:1
        while number < 4:                        2
            print(number)                        3
            number = number + 1

2.死循环
    while True:                     #输出结果1
        print('111')                         1
    print('123321123')                       1
                                             .....无限输出1,需手动停止
ps:while循环陷入死循环,不会执行循环体后面的语句

3.while语句的终止——结束死循环方法
若你想终止循环的时候可以使用break或continue或令标志位为反面
例:flag = True
    while flag:                 #输出结果 111
        print('111')
        flag = False
——————break 跳出循环——————
    while True:                #输出结果111并跳出循环
        print('111')
        break
——————continue 停止本次循环进入下次循环——————
    while True:                                  #输出结果 请输入序号,输入q则退出:11
        inp = input('请输入序号,输入q则退出:')        打印11
        if inp == 'q':                            请输入序号,输入q则退出:15
            continue                                   打印15
        print(inp)                                 请输入序号,输入q则退出:q
                                                   请输入序号,输入q则退出

当不想输出某些内容的时候亦可使用continue 例:
count = 1
while count <= 5:
    if count == 3:            #输出结果 1
        count += 1                      2
        countinue                       4
    print(count)                        5
    count += 1

4.while......else...语句
else的作用是指当while正常执行完毕,期间没有被break终止的话,就会执行else后面的语句
若有break在中间时,则会跳出while.....else...循环   以下举例说明;
count = 1                   #输出结果  1
while count <= 5:                      2
    print(count)                       3
    count += 1                         4
else:                                  5
    print('bye')                      bye
——————————————————————————————————————
count = 1
while count <= 5:          #输出结果   2
    count += 1                         3
    if count == 4:                     bye
        break
    print(count)
else:
    print('hahahaha')
print('bye')

二、格式化输出
1.占位符
%d——数字占位符    %s——全能占位符
例如:18岁的Ethan在人民广场吃炸鸡
代码实现:age = 18
          name = "Ethan"
          location = "人民广场"
          behavior = "吃炸鸡"
          print("%d岁的%s在%s%s"%(age,name,location,behavior))
            #print("%s岁的%s在%s%s"%(age,name,location,behavior))
            #print(str(age)+"岁的"+name+"在"+location+behavior)
        #输出结果:18岁的Ethan在人民广场吃炸鸡

ps:如果使用了%格式化输出后想单独输出百分号%,则需要转义%%即python规定使用%%来表示一个百分号%
    #print("我的名字叫%s, 我已经学习了30%%的python了" % (name))

三、运算符
1.算数运算符

运算符    描述
+      加-两个对象相加
-      减 - 得到负数或是一个数减去另一个数
*      乘 - 两个数相乘或是返回一个被重复若干次的字符串
/      除 - a除以b
%      取模 - 返回除法的余数
**     幂 - 返回a的b次幂
//     取整除 - 返回商的整数部分

实例:

运行结果: 
       

2.比较运算符

运算符    描述
==     等于,比较对象是否相等
!=     不等于 - 比较两个对象是否不相等
<>     不等于 - 比较两个对象是否不相等,这个运算符类似 != 。(Python3中已废弃)
>      大于 - 返回a是否大于b
<      小于 - 返回a是否小于b。
>=     大于等于 - 返回a是否大于等于b。
<=     小于等于 - 返回a是否小于等于b。

实例:

运行结果:


3.逻辑运算符
① 逻辑运算:
     and:并且,两端同时为真,结果才是真
     or:或者,两端有一个为真,结果就是真.
     not:非真既假,非假既真.
       运算顺序:() => not => and => or

②.x or y       如果x是0,返回y

                          如果x是非0,返回x

            注意,and和or相反

运算符    逻辑表达式  描述
and        a and b        布尔"与" - 如果 a 为 False,a and b 返回 False,否则它返回 b 的计算值。
or     a or b     布尔"或" - 如果 a 是非 0,它返回 a 的值,否则它返回 b 的计算值。
not        not a      布尔"非" - 如果 a 为 True,返回 False 。如果 a 为 False,它返回 True。

实例:

运行结果:


4.成员运算符 in 和 not in

运算符    描述
in     如果在指定的序列中找到值返回 True,否则返回 False。
not in 如果在指定的序列中没有找到值返回 True,否则返回 False。

例子: list = [1,2,3,4,5]
       print( True if 1 in list else False)
       #输出结果 True

5.赋值运算符

运算符    描述
=      简单的赋值运算符
+=     加法赋值运算符
-=     减法赋值运算符
*=     乘法赋值运算符
/=     除法赋值运算符
%=     取模赋值运算符
**=        幂赋值运算符
//=        取整除赋值运算符

6.身份运算符 判断id是否同一内存地址

运算符    描述
is     is 是判断两个标识符是不是引用自一个对象
is not is not 是判断两个标识符是不是引用自不同对象

四、编码初识

1. ascii. 最早的编码. 至今还在使用. 8位一个字节(字符)
2. unicode. 万国码. 32位4个字节
3. UTF-8. 可变长度的unicode.
    英文: 8位. 1个字节
    欧洲文字:16位. 2个字节
    汉字. 24位. 3个字节
4. GBK. 中国制造、国标码. 16位2个字节.

8bit = 1byte
1024byte = 1KB
1024KB = 1MB
1024MB = 1GB
1024GB = 1TB

 

(2)Docker 镜像

(3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境

(4)Docker 容器的隔离性 - 使用 cgroups 限制容器使用的资源

(5)Docker 网络

(6)若干企业生产环境中的容器网络方案

(7)Docker 存储 - AUFS

本文由澳门新葡亰手机版发布于编程,转载请注明出处:5i5j房屋信息,存储之卷

上一篇:没有了 下一篇:Swift循环遍历集合方法,替换字符
猜你喜欢
热门排行
精彩图文