会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 132647个问题

# _*_coding=utf-8 _*_
from time import sleep

import requests
from fake_useragent import UserAgent
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as ec
from selenium.webdriver.common.by import By
from huadong import distance, track


def save_img():
    url = 'https://www.sf-express.com/cn/sc/dynamic_function/waybill/#search/bill-number/SF1406050054883'
    chrome = webdriver.Chrome()
    chrome.get(url)
    wait = WebDriverWait(chrome, 5)

    try:
        wait.until(ec.presence_of_element_located((By.ID, 'tcaptcha_popup')))
        # 切换窗口
        chrome.switch_to_frame('tcaptcha_popup')
        # 获取图片
        img = chrome.find_element_by_id('slideBkg')
        img_src = img.get_attribute('src')[:-1]
        # 下载图片
        download_img(img_src + '1', 'ctp1.png')
        download_img(img_src + '2', 'ctp2.png')
        # 获取滑动的距离
        tmp_distance = distance.get_long()
        # 生成滑动轨迹
        tk = track.get_track(tmp_distance-12)
        # 滑动按钮
        # 选中按钮
        button = chrome.find_element_by_id('tcaptcha_drag_button')
        webdriver.ActionChains(chrome).click_and_hold(button).perform()
        # 按轨迹滑动按钮
        for t in tk:
            webdriver.ActionChains(chrome).move_by_offset(xoffset=t,yoffset=0).perform()
        # 释放按钮
        webdriver.ActionChains(chrome).release().perform()
        # 休眠2秒
        sleep(2)
        chrome.quit()
    except Exception as e:
        print(e)
        chrome.quit()


def download_img(url, filename):
    # print(url)
    headers = {
        'User-Agent': UserAgent().chrome
    }
    resp = requests.get(url, headers=headers)

    with open(f'./imgs/{filename}', 'wb') as f:
        f.write(resp.content)


if __name__ == '__main__':
    save_img()

image.png

老师为啥报这个错误,,路径啥的都对啊

Python 全系列/第十六阶段:Python 爬虫开发/爬虫反反爬- 617楼
Python 全系列/第十六阶段:Python 爬虫开发/爬虫反反爬- 619楼

import requests
from fake_useragent import UserAgent
from bs4 import BeautifulSoup
from time import sleep

def get_list():
    num = int(input("请输入要获取多少页数据:"))
    for i in range(num):
        url = "https://maoyan.com/films?showType=3&offset={i*30}"
        headers = {'User-Agent':UserAgent().chrome}
        resp = requests.get(url,headers=headers)
        soup = BeautifulSoup(resp.text,'lxml')
        all_a = soup.select('div > a[data-act="movies-click"]')
        print(all_a)
        return [a.get('href') for a in all_a]

# 格式化演员集合,去重
def format_actors(a_list):
    actor_set = set()
    for a in a_list:
        actor_set.add(a.text.strip())       # 需要a标签里的文本,去除空格
    return actor_set

def start():
    all_href = get_list()
    for a in all_href:
        sleep(2)
        url = f"https://maoyan.com{a}"
        headers = {'User-Agent':UserAgent().chrome}
        resp = requests.get(url,headers=headers)
        soup = BeautifulSoup(resp.text,'lxml')

        name = soup.select('h1.name')[0].text.strip()
        types = soup.select('li.ellipsis')[0].text.strip()
        actors_m = soup.select('li.celebrity.actor > div > a')
        actors = format_actors(actors_m)
        print(f'电影名:{name}  电影类型:{types}   演员:{actors}')

if __name__ == '__main__':
    start()

老师,帮我看看这是为什么?我的输出没有结果!

图片.png

Python 全系列/第十六阶段:Python 爬虫开发/爬虫基础(旧) 621楼

'''
出现中文乱码的问题,编码形式改为‘utf-8’;
出现\u这种问题,照着dumps()方法中的ensure_ascii=False进行修改。
'''
import json

str_1 = '{"name":"战狼3"}'
print(type(str_1))        # 返回<class 'str'>
print(str_1)        #返回{"name":"战狼3"}


print('----str_1 to obj_1----')
# 把Json格式字符串解码转换成Python对象
obj_1 = json.loads(str_1)
print(obj_1)      # 返回{'name': '战狼3'}
print(type(obj_1))        # 返回<class 'dict'>  


print('----obj_1 to str_2----')
# 实现python类型转化为json字符串,返回⼀个str_2对象
str_2 = json.dumps(obj_1)     # str_2返回Unicode编码
# str_2 = json.dumps(obj_1,ensure_ascii=False)      # 将ensure_ascii=False,可使Unicode编码转为原生编码
print(str_2)        # 未将ensure_ascii=False,则返回{"name": "\u6218\u72fc3"}
# print(str_2)        # 将ensure_ascii=False,则返回{"name": "战狼3"}
print(type(str_2))      # 返回<class 'str'>


print('----obj_1 to file----')
# obj_1 to file,将Python内置类型序列化为json对象后写⼊⽂件
json.dump(obj_1,open('movie.txt','w',encoding='utf-8',ensure_ascii=False))       # 写文件movie.txt


print('----file to obj_2----')
# file to obj_2,读取⽂件中json形式的字符串元素 转化成python类型
obj_2 = json.load(open('movie.txt',encoding='utf-8'))
print(obj_2)        # encoding = 'utf-8',返回{'name': '战狼3'}
print(type(obj_2))      # 返回<class 'dict'>

图片.png

图片.png

图片.png

老师,你好,我测试了一下这个错误点一个是在开头注释的\u,然后还有写movie文件中的ensure_ascii=False,好像是无效的关键字参数,那我写在注释里的\u为什么是错的,然后还有‘写文件’中出现这样的情况怎么把它改成中文。对于这个编码之间的转换不太了解,试着掌握很多次了,可印象还是不深刻。



Python 全系列/第十六阶段:Python 爬虫开发/爬虫基础(旧) 623楼
Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 624楼
Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 625楼
Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 626楼
Python 全系列/第十六阶段:Python 爬虫开发/爬虫基础(旧) 627楼
Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 628楼
Python 全系列/第十六阶段:Python 爬虫开发/scrapy框架使用(旧) 629楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园
网站维护:百战汇智(北京)科技有限公司
京公网安备 11011402011233号    京ICP备18060230号-3    营业执照    经营许可证:京B2-20212637