Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫

这篇具有很好参考价值的文章主要介绍了Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前面有分享过requests采集Behance 作品信息的爬虫,这篇带来另一个版本供参考,使用的是无头浏览器 selenium 采集,主要的不同方式是使用 selenium 驱动浏览器获取到页面源码,后面获取信息的话与前篇一致。

Python爬虫源码,Behance 作品图片及内容采集爬虫附工具脚本!

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

理论上,几乎所有的页面内容都可以采用无头浏览器来获取,不过考虑到采集页面的效率问题,还是不怎么推荐和建议,不过自动化测试或者是其他方面的应用,可以尝试考虑使用,比如 so long a gigo 本渣渣就有分享过淘宝抢购以及百度刷快排的源码,感兴趣,也可以移动浏览,仅供参考学习使用。

【淘宝】python的淘宝秒杀抢购下单源码参考

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

百度快排探究(一),Python selenium 实现自然搜索访问目标网站

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

附上几个关键点,供参考。

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

selenium 配置

由于 selenium 需要驱动浏览器,webdriver 版本号一定要对应,一是对应浏览器,二是对应浏览器版本,这里本渣渣用的是谷歌 chromedriver.exe 。

配置参考:

chromedriver_path = r"D:\chromedriver_win32\chromedriver.exe"  # 完整路径
options = webdriver.ChromeOptions()  # 配置 chrome 启动属性
# options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) #不加载图片,加快访问速度
options.add_experimental_option("excludeSwitches", ['enable-automation'])  # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium
browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)

浏览器页面下拉

驱动无头浏览器获取整个页面源码,下拉操作是必须的,这里本渣渣使用了随机生成数字来控制下拉页面,仅供参考。

# 滑到页面
    js = "var q=document.documentElement.scrollTop=5000"
    browser.execute_script(js)
    time.sleep(4)

# 生成一个包含10个0到100之间不重复随机数的列表
    lst = random.sample(range(10), 5)
    print(lst)

    for i in lst:
        js = f"var q=document.documentElement.scrollTop={i*500}"
        browser.execute_script(js)
        time.sleep(i)


    # #滑到底部
    # js = "var q=document.documentElement.scrollTop=100000"
    # browser.execute_script(js)
    # time.sleep(2)

    # #滑到顶部
    # js = "var q=document.documentElement.scrollTop=0"
    # browser.execute_script(js)
    # time.sleep(3)

附完整源码供参考:

# -*- coding: UTF-8 -*-
import requests,re,time
from lxml import etree
from selenium import webdriver
import random
import os



def tp(path,img_url,url):
    ua_list = [
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
        'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.103 Safari/537.36Chrome 17.0',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11',
        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:6.0) Gecko/20100101 Firefox/6.0Firefox 4.0.1',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1',
        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
        'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
        'Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11',
    ]
    headers = {
        'Connection': 'close',
        'referer': url,
        "User-Agent": random.choice(ua_list)
    }
    img_name=img_url.split('/')[-1]
    r = requests.get(img_url,headers=headers,timeout=10)
    time.sleep(1)
    with open(f'{path}{img_name}','wb')as f:
        f.write(r.content)
    print(f"{img_name}下载图片成功")



def get_detail(url):
    # chromedriver_path = r"C:\Users\Administrator\AppData\Local\Programs\Python\Python37\chromedriver.exe"  # 完整路径
    chromedriver_path = r"D:\chromedriver_win32\chromedriver.exe"  # 完整路径
    options = webdriver.ChromeOptions()  # 配置 chrome 启动属性
    # options.add_experimental_option("prefs", {"profile.managed_default_content_settings.images": 2}) #不加载图片,加快访问速度
    options.add_experimental_option("excludeSwitches", ['enable-automation'])  # 此步骤很重要,设置为开发者模式,防止被各大网站识别出来使用了Selenium

    browser = webdriver.Chrome(executable_path=chromedriver_path, options=options)

    browser.get(url)
    time.sleep(10)

    # 滑到页面
    js = "var q=document.documentElement.scrollTop=5000"
    browser.execute_script(js)
    time.sleep(4)

    #获取网页标题
    h2=browser.title
    print(h2)
    h2 = h2.strip()
    h2 = h2.replace('|', '')
    pattern = r"[\/\\\:\*\?\"\<\>\|]"
    h2 = re.sub(pattern, "_", h2)  # 替换为下划线
    print(h2)

    path=f'{h2}/'
    os.makedirs(path,exist_ok=True)

    # 生成一个包含10个0到100之间不重复随机数的列表
    lst = random.sample(range(10), 5)
    print(lst)

    for i in lst:
        js = f"var q=document.documentElement.scrollTop={i*500}"
        browser.execute_script(js)
        time.sleep(i)


    # #滑到底部
    # js = "var q=document.documentElement.scrollTop=100000"
    # browser.execute_script(js)
    # time.sleep(2)
    #
    # #滑到顶部
    # js = "var q=document.documentElement.scrollTop=0"
    # browser.execute_script(js)
    # time.sleep(3)

    # 打印当前网页源码
    html = browser.page_source
    with open(f'{path}{h2}.html', 'w', encoding='utf-8') as f:
        f.write(html)

    get_html(path,h2,html,url)


#解析页面
def get_html(path,h2,html,url):
    tree=etree.HTML(html)

    main_text = tree.xpath('//div[@class="main-text"]//span/text()')
    text = '\n'.join(main_text)
    text = f'{h2}\n\n{text}'
    with open(f'{path}{h2}.txt', 'w', encoding='utf-8') as f:
        f.write(text)

    imgs=tree.xpath('//div[@class="ImageElement-root-kir ImageElement-loaded-icR"]/img/@src')
    print(imgs)
    for img in imgs:
        try:
            tp(path,img, url)
        except Exception as e:
            print(e)
            time.sleep(4)
            try:
                tp(path, img, url)
            except Exception as e:
                print(e)
                time.sleep(6)
                pass

        time.sleep(5)


if __name__=="__main__":
    url="https://www.behance.net/gallery/174203985/Squashy?tracking_source=search_projects_recommended"
    #url = "https://www.behance.net/gallery/152037689/CLIO-DEWY-BLUR-TINT?tracking_source=search_projects"
    get_detail(url)

·················END·················

你好,我是二大爷,

革命老区外出进城务工人员,

互联网非早期非专业站长,

喜好python,写作,阅读,英语

不入流程序,自媒体,seo . . .

公众号不挣钱,交个网友。

读者交流群已建立,找到我备注 “交流”,即可获得加入我们~

听说点 “在看” 的都变得更好看呐~

关注关注二大爷呗~给你分享python,写作,阅读的内容噢~

扫一扫下方二维码即可关注我噢~

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

关注我的都变秃了

说错了,都变强了!

不信你试试

Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫,python,爬虫,selenium,开发语言,测试工具

扫码关注最新动态

公众号ID:eryeji文章来源地址https://www.toymoban.com/news/detail-718178.html

到了这里,关于Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python爬虫实战(六)——使用代理IP批量下载高清小姐姐图片(附上完整源码)

    本次爬取的目标是某网站4K高清小姐姐图片: 实现批量下载指定的图片,存放到指定文件夹中: Python:3.10 编辑器:PyCharm 第三方模块,自行安装: 爬虫使用代理IP的好处有以下几点: 轮换IP地址 :使用代理IP可以轮换IP地址,降低被封禁的风险,从而保持爬取的连续性

    2024年02月07日
    浏览(101)
  • 计算机毕业设计:基于python机器学习的全国气象数据采集预测可视化系统 预测模型+爬虫(包含文档+源码+部署教程)

    [毕业设计]2023-2024年最新最全计算机专业毕设选题推荐汇总 感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人 。 随着气候变化的不断加剧,气象数据的准确性和时效性变得愈发重要。本论文介绍了一个基

    2024年02月03日
    浏览(64)
  • 【爬虫系列】使用Selenium模块采集招聘网站的职位信息(1)

    在上篇演示使用了 Request 模块采集智联招聘网站 PC 端网页的招聘信息,结果遇到了比较隐蔽的反爬限制(当时还不清楚什么原因导致的),看来使用该模块这条路暂时走不通了, 打算换用 Selenium 模块试试,并尝试寻找该网站反爬限制的具体原因 。 一、环境准备 Google 浏览

    2024年02月20日
    浏览(54)
  • 爬虫:使用Selenium模拟人工操作及获取网页内容

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月13日
    浏览(42)
  • 爬虫(三):使用Selenium模拟人工操作及获取网页内容

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 再推荐一下最近热更的:《大厂测试高频面试题详解》 该专栏对近年

    2024年02月11日
    浏览(42)
  • 【爬虫项目-4】微博超话内容爬取/selenium使用教学

    闲来无事想了解王者荣耀某个英雄最近的风评,例如是版本之子吗or出装怎么搭配or大家对策划这次改动有何看法,发现微博超话这方面的内容非常多,于是想把超话内容爬取下来做进一步数据分析。温馨提示 本代码可以适用于任何微博超话内容的爬取,只需修改url即可。 可

    2024年04月17日
    浏览(54)
  • 一个月学通Python(二十八):Python网络数据采集(爬虫)概述(爬虫)

    结合自身经验和内部资料总结的Python教程,每天3-5章,最短1个月就能全方位的完成Python的学习并进行实战开发,学完了定能成为大佬!加油吧!卷起来! 全部文章请访问专栏:《Python全栈教程(0基础)》 爬虫(crawler)也经常被称为网络蜘蛛(spider),是按照一定的规则自

    2024年02月14日
    浏览(50)
  • Python 爬虫 之 抖音视频采集

    嗨喽,大家好呀~这里是爱看美女的茜茜呐 知识点: 动态数据抓包 requests发送请求 开发环境: python 3.8 运行代码 pycharm 2022.3 辅助敲代码 requests pip install requests 如何安装python第三方模块: win + R 输入 cmd 点击确定, 输入安装命令 pip install 模块名 (pip install requests) 回车 在pycharm中点击

    2024年01月20日
    浏览(78)
  • 微信小程序,Python爬虫抓包采集实战,采集某成考题库小程序

    从本篇博客开始,我们会针对微信小程序编写一系列的爬虫,这些爬虫依旧通过案例进行串联,保证对大家的学习有所帮助。 正式开始前先准备工具,一个可以解析 https 协议请求的软件 fiddler ,电脑版微信。 由于在 2022 年 5 月份,微信调整了其小程序架构,所以在正式开始

    2024年02月09日
    浏览(44)
  • python采集数据保存csv, 文件内容乱码了怎么解决?

    如果你的 Python 程序采集到的数据在保存成 CSV 格式的文件时出现了乱码,那么可尝试以下解决方法: 1. 在打开 CSV 文件时指定编码方式 你可以使用 Python 中的 open() 函数打开 CSV 文件,并在 open() 函数中指定文件编码方式为 CSV 文件原始编码方式。如果 CSV 文件原始编码方式为

    2024年02月16日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包