デイ07組み込みの文字列メソッドと爬虫類ベース3

例外処理

try:
    print(1/0) # 有错误就跳过,没错误就执行
except ZeroDivisionError: # 错误被捕捉
    pass # 什么也不做


try:
    key = input('请输入一个key来获取相应的值')
    dic = {'a': 1}
    dic[key] # KeyError
except Exception as e: # Exception万能异常 把错误信息输出,同时一般把错误记录到日志中
    logging.info(e) # 给程序员看
    print('请输入正确的key') # 给用户看

# 预运行(类似把代码抽离到另外一个文件中运行,这样的运行对本文件不会造成任何影响),能不用则不用
    

二つの数字(例)のLeetCode和を使用します

整数(リスト)NUMSと目標値ターゲットの配列を考えると、配列内の2つの整数の目標値を特定し、その配列の添字に戻るにお願いします。あなたは、各入力が一つだけ答えに対応することを想定することができます。ただし、同じ配列要素を再使用することはできません。

例1:

所与のNUMS = [2、7、11、15]、目標= 9

なぜならNUMS [0] +のNUMS [1] = 2 + 7 = 9

返された[0,1]

# 需求1: 在该数组中找出和为目标值的那 两个 整数
# 需求2: 返回他们的数组下标
# 条件: 你不能重复利用这个数组中同样的元素

nums = [2, 7 11, 15]
target = 9
for i in range(len(nums)):
    for j in range(i+1, len(nums)):
        if nums[i] + num[j] = target:
            return i,j 
        
# 循环一次,用减法得到结果,判断是否在nums内
nums = [2, 7 11, 15]
target = 9
for i in range(len(nums)):
    sub = target - nums[i]
    if sub in nums:
        res = nums.index(sub)
        if r
        return i,res

文字列の組み込みメソッド

# 内置方法:自带的方法(提前安排好的,会用就行了)
# 字符串的内置方法:只有字符串才能使用,列表不能用

s = 'nick handsome'
#    0123

# 1. 索引取值
print(s[0])

# 2. 切片
print(s[0:4])

# 3. 成员运算
print('nick' in s)
print('nick1' in s)

s = 'nick handsome'
# 4. for循环
for i in s:  # n i c k  h a
    print(i)

# 5. len()
print(len(s))

# 接下来讲的都是字符串.出来的方法

s = '****  ni  ck  '
print(s)
# 6. strip(): 默认去掉两端空格,可以
# print(s.strip())  # 去空格
# print(s.strip('*'))  # 去*
print(s.strip('n* '))  # 去 和*和n

# 7.lstrip()/rstrip(): 左端/右端
s = '**nick**'
print(s.lstrip('*'))
print(s.rstrip('*'))

# 8.startswith()/endswith(): 以。。开头/以。。结尾
s = 'nick'
print(s.startswith('nick'))
print(s.endswith('k'))

# 9.find()/index() : 获取某一个元素的索引位置
s = 'nick'
print(s.find('a'))  # 找不到返回-1
# print(s.index('a'))  # 找不到报错


# 10.join() : 把列表内的元素拼接出来
print('*'.join(['a', 'b', 'c']))

# 11.split(): 切割
s = 'a*b*c'
print(s.split('*'))  # 以*为切割符号,切割字符串

# 12.center/ljust/rjust : 打印更美观,居中/居左/居右
print(s.center(50, '-'))
print(s.ljust(50, '-'))
print(s.rjust(50, '-'))

# 13.isdigit()/isalpha()
s = 'a'
print(s.isdigit())  # 是否为纯数字
print(s.isalpha())  # 是否为纯字母

# 14.count(): 计数
s = 'nick nick'
print(s.count('nick'))

# ctrl+alt+l --> 让他符合pep8标准(python创始人规定了代码的风格)

爬虫類ベース3

セレンの基本的な使用

# 导入webdriver驱动浏览器
from selenium import webdriver
import time

# 通过 webdriver 驱动浏览器加载驱动
# webdriver.Chrome('驱动绝对路径')
driver = webdriver.Chrome(r'D:\chromedriver\chromedriver.exe')

try:

    # 等待浏览器数据加载10秒
    driver.implicitly_wait(10)
    driver.get(r'https://www.baidu.com/') # 输入百度网址

    # 找到搜索框并输入python
    input_tag = driver.find_element_by_id('kw')
    input_tag.send_keys('python')

    # 找到百度一下按钮并点击
    submit_tag = driver.find_element_by_id('su')
    submit_tag.click()

    # 等待10秒
    time.sleep(10)

finally:
    driver.close()

セレンアナログBaiduのログ

from selenium import webdriver
import time

# 通过webdriver加载驱动
driver = webdriver.Chrome(r'D:\chromedriver\chromedriver.exe')

try:
    # 打开浏览器访问百度主页
    driver.implicitly_wait(10)
    driver.get('https://www.baidu.com')

    # 通过文本找到登录按钮并点击
    login_botton = driver.find_element_by_link_text('登录')
    login_botton.click()
    time.sleep(3)


    # 通过id找到用户名登录按钮并点击
    user_login_tag = driver.find_element_by_id('TANGRAM__PSP_10__footerULoginBtn')
    user_login_tag.click()
    time.sleep(3)

    # 通过id找到账号输入框并输入
    id_input = driver.find_element_by_id('TANGRAM__PSP_10__userName')
    id_input.send_keys('18895317622')
    time.sleep(3)

    # 通过id找到密码输入框并输入
    password_input = driver.find_element_by_id('TANGRAM__PSP_10__password')
    password_input.send_keys('0123456')
    time.sleep(3)

    # 找到并点击登录按钮
    submit = driver.find_element_by_id('TANGRAM__PSP_10__submit')
    submit.click()
    time.sleep(10)

finally:
    driver.close()

Jingdongは製品情報をクロールセレン

from selenium import webdriver
from selenium.webdriver.common.keys import Keys  # 键盘按键操作
import time

try:
    # 加载驱动
    driver = webdriver.Chrome(r'D:\chromedriver\chromedriver.exe')

    # 打开京东首页
    driver.implicitly_wait(10)
    driver.get('https://www.jd.com/')
    time.sleep(5)

    # 通过id找到搜索栏并搜索'手机'
    ser_bar = driver.find_element_by_id('key')
    ser_bar.send_keys('手机')

    # 模拟键盘按enter键
    ser_bar.send_keys(Keys.ENTER)
    time.sleep(5)

    # 按销量排序
    # 按文本找到销量按钮并点击
    sales_volume_botton = driver.find_element_by_link_text('销量')
    sales_volume_botton.click()
    time.sleep(5)

    # 通过id查找所以商品的父标签
    goods_div = driver.find_element_by_id('J_goodsList')

    # 通过class查找goods.div所以li标签
    goods_list = goods_div.find_elements_by_class_name('gl-item')

    # 循环获取goods_list里每一个li标签
    for goods in goods_list:
        # 获取价格文本
        # css 属性选择器
        # 通过css_selector获取商品价格
        goods_price = goods.find_element_by_css_selector('.p-price i').text
        # 通过css_selector获取商品名称
        goods_name = goods.find_element_by_css_selector('.p-name em').text
        # 通过css_selector获取商品评价人数
        goods_commit = goods.find_element_by_css_selector('.p-commit a').text
        # 通过css_selector获取商品详情链接
        goods_url = goods.find_element_by_css_selector('.p-commit a').get_attribute('href')

        goods_data = f'''
        商品名称: {goods_name}
        商品价格: {goods_price}
        评价人数: {goods_commit}
        商品详情: {goods_url}
        '''
        # 保持数据
        with open('jd goods list.text', 'a', encoding='utf-8') as f:
            f.write(goods_data)

    time.sleep(10)
finally:
    driver.close()

おすすめ

転載: www.cnblogs.com/bigb/p/11432743.html