会员可以在此提问,百战程序员老师有问必答
对大家有帮助的问答会被标记为“推荐”
看完课程过来浏览一下别人提的问题,会帮你学得更全面
截止目前,同学们一共提了 133312个问题
Python 全系列/第十五阶段:Python 爬虫开发/爬虫基础(旧) 602楼
Python 全系列/第十五阶段:Python 爬虫开发/爬虫基础(旧) 605楼
Python 全系列/第十五阶段:Python 爬虫开发/爬虫基础(旧) 606楼
Python 全系列/第十五阶段:Python 爬虫开发/爬虫反反爬- 608楼

# _*_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 爬虫开发/爬虫反反爬- 610楼
Python 全系列/第十五阶段:Python 爬虫开发/爬虫反反爬- 612楼

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 爬虫开发/爬虫基础(旧) 614楼

课程分类

百战程序员微信公众号

百战程序员微信小程序

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