2021/5/18爬虫第十三次课(行为链、无界面模式、selenium爬取数据案例)

如何使用PHP和Selenium快速构建自己的网络爬虫系统 近年来,随着互联网的普及,网络爬虫逐渐成为了信息采集的主要手段之一,然而,常规的爬虫技术不稳定、难以维护,市面上的纯web网页爬虫也只能在静态页面上进行操作。ChromeDriver则是Selenium中调用Chrome浏览器的驱动程序,可以使Selenium直接操作Chrome,从而实现动态页面的爬取。综上所述,本文通过介绍如何使用PHP和Selenium构建网页爬虫系统,并通过实际示例说明如何获取页面中的节点信息,该爬虫具有稳定性高、数据采集全面等优点,具有一定的应用价值。三、创建网页源码解析类。 阅读详情

一、(鼠标)行为链

有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件

actions = ActionChains(driver)
actions.move_to_element(inputTag)
actions.send_keys_to_element(inputTag,'python')
actions.move_to_element(submitTag)
actions.context_click()
actions.click(submitTag)
actions.perform()

还有更多的鼠标相关的操作
• click_and_hold(element):点击但不松开鼠标。
• context_click(element):右键点击。
• double_click(element):双击。
• 更多方法请参考:http://selenium-python.readthedocs.io/api.html

具体使用:

from selenium import webdriver
from selenium.webdriver import ActionChains
import time
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
time.sleep(1)
# 定位输入框
inputTag = driver.find_element_by_id('kw')

# 定位百度一下的按钮
buttonTag = driver.find_element_by_id('su')

#鼠标行为链开始
# 实例化对象
actions = ActionChains(driver)

# 往输入框里面输入内容
actions.send_keys_to_element(inputTag,'浩哥')

time.sleep(1)
# 普通点击行为不要在鼠标行为链里面出现  buttonTag.click()
#点击行为
actions.move_to_element(buttonTag)
actions.click()

# 提交行为链
actions.perform()
#鼠标行为链结束

'''
1 千万不要忘记提交鼠标行为链
actions.perform()
2 需要注意鼠标行为链里面的点击操作 
'''


二、selenium设置无界面模式(模板)

# 创建chrome设置对象
options = webdriver.ChromeOptions()
# 设置无界面功能  --headless 浏览器无界面 --xxxx 
options.add_argument('--headless')
driver = webdriver.Chrome(options=options)
driver.get('https://maoyan.com/board/4')

三、selenium爬取数据

将使用到的一些方法或属性

drvier.page_source 获取html结构的源码
# selenium提取数据的方式,是以页面最终渲染以后,以前端页面为基准的,和响应内容没有什么关系
drvier.find()  在html结构中查找某个字符串是否存在 
drvier.get_attribute('src') 获取节点的属性值 
drvier.text 获取节点的文本内容 (子子孙孙)

具体使用:

from selenium import webdriver
import time
# options=webdriver.ChromeOptions()
# options.add_argument('--headless')
#options=options
driver = webdriver.Chrome()
# driver.get('https://www.baidu.com/')
# time.sleep(1)
# # driver.page_source #获取检查的字符串格式
# html = driver.page_source
# print(type(html))


# find()  在html结构中查找某个字符串是否存在
# 数字就证明存在没有什么规律;如果不存在会返回 -1
# print(driver.page_source.find('kw1212313213123132'))


driver.get('https://maoyan.com/board/4')
time.sleep(1)

img_tag = driver.find_element_by_xpath('//*[@id="app"]/div/div/div[1]/dl/dd[1]/a/img[2]')
print(img_tag.get_attribute('src'))

四、案例

4.1selenium获取猫眼电影top100电影信息

问题:使用selenium获取猫眼电影top100电影信息 电影排名 电影名称 主演 上映时间 评分

分析页面结构 选择合适的技术点
1>明确目标的url https://maoyan.com/board/4
2>我们先搞定一页的电影数据 再去搞定其它页的
3>通过分析 数据都是在dl标签里面 dl标签里面每一个dd标签它就是一部电影
细节:
1》翻页的处理

  • 当我们点击到最后一页的时候 发现下一页的按钮没有了 就可以判断是最后一页了

2》报错的处理

代码:

from selenium import webdriver
import csv

# # 创建chrome设置对象 程序没有问题在去设置 无界面模式
# options = webdriver.ChromeOptions()
# # 设置无界面功能  --headless 浏览器无界面  --xxxx
# options.add_argument('--headless')
# #selenium获取猫眼电影top100电影信息
driver = webdriver.Chrome()
driver.get('https://maoyan.com/board/4')


def get_one_page():
    # 找到这一页的dd标签 千万不要忘记写dd
    dd_lst = driver.find_elements_by_xpath('//*[@id="app"]/div/div/div[1]/dl/dd')
    single_list = []
    for dd in dd_lst:
        # text属性 获取当前dd节点的子子孙孙的文本内容
        # 视情况而分析 验证我们打印的内容有什么规律吗?如果有 就进一步操作
        # print(dd.text)   #str类型   要测试其结果是啥
        # print('*'*80)
        one_film_info_lst = dd.text.split('\n')
        item = {}
        try:
            item['rank'] = one_film_info_lst[0].strip()
            item['name'] = one_film_info_lst[1].strip()
            item['actor'] = one_film_info_lst[2].strip()
            item['time'] = one_film_info_lst[3].strip()
            item['score'] = one_film_info_lst[4].strip()
        except:
            pass
        single_list.append(item)
        print(item)

    return single_list


all_list = []
while True:

    single_list = get_one_page()

    # if 不是最后一页:
    #     driver.find_element_by_link_text('下一页').click()
    # else:
    #     driver.quit()
    #     break

    all_list += single_list
    try:
        # 找不到最后一页 就会抛出异常 此时就证明是最后一页了
        driver.find_element_by_link_text('下一页').click()
    except Exception as e:
        driver.quit()
        break

with open('maoyetop100.csv', 'w', encoding='utf-8', newline='') as file_obj:
    dictwriter = csv.DictWriter(file_obj, fieldnames=['rank', 'name', 'actor', 'time', 'score'])
    dictwriter.writeheader()
    dictwriter.writerows(all_list)

4.2selenium爬取京东某商品数据

分析页面结构 选择合适的技术点
1>我们发现 所有的数据都是在一个ul标签 ul标签下面每一个li标签对应的就是一本书。
2>我们拖动 拖动条(滚轮)的时候 页面又加载了数据
代码中 当我们进入这个页面的时候,把这个拖动条拖动一下,拖到最下面,然后等它加载一会儿,等页面元素加载完了之后,我们再去抓取
#每页 上来先加载30个 当我们进行拖动的时候 它又会加载30个 也就是每页其实是60个数据
如何拖动 拖动条?(我们会用到一个 加载js的方法)

细节:
1》翻页的处理

  • 当我们点击到最后一页的时候 发现下一页的按钮还有 要用find()方法

2》如何拖动 拖动条

3》报错的处理

代码:


from selenium import webdriver
import time
class JdSpider():
    def __init__(self):
        # 设置无界面
        self.options = webdriver.ChromeOptions()
        # 设置无界面功能  --headless 浏览器无界面  --xxxx
        self.options.add_argument('--headless')
        self.driver = webdriver.Chrome(options=self.options)
        self.driver.get('https://www.jd.com/')
        # 定位输入框和按钮
        self.driver.find_element_by_xpath('//*[@id="key"]').send_keys('爬虫书')
        time.sleep(1)
        self.driver.find_element_by_xpath('//*[@id="search"]/div/div[2]/button').click()
        time.sleep(1)


    def pares_html(self):

        # 进入这个页面的时候,把这个拖动条拖动一下,拖到最下面
        # 0 是从去起始位置开始  document.body.scrollHeight 整个窗口的高度  模板!
        self.driver.execute_script(
            'window.scrollTo(0,document.body.scrollHeight)'
        )

        time.sleep(2)

        # 提取数据 千万不要忘记写li
        li_lst = self.driver.find_elements_by_xpath('//*[@id="J_goodsList"]/ul/li')
        for li in li_lst:
            # print(li.text)
            # print('*'*50)
            try:
                item = {}
                item['price'] = li.find_element_by_xpath('.//div[@class="p-price"]/strong').text.strip()
                item['name'] = li.find_element_by_xpath('.//div[@class="p-name"]/a/em').text.strip()
                item['commit'] = li.find_element_by_xpath('.//div[@class="p-commit"]/strong').text.strip()
                item['shop'] = li.find_element_by_xpath('.//div[@class="p-shopnum"]/a').text.strip()
                print(item)
            except Exception as e:
                print(e)


    def main(self):
        while True:
            self.pares_html()
            #
            if self.driver.page_source.find('pn-next disable') == -1:
                self.driver.find_element_by_xpath('//*[@id="J_bottomPage"]/span[1]/a[9]').click()
                time.sleep(1)
            else:
                self.driver.quit()
                break



if __name__ == '__main__':
    spider = JdSpider()
    spider.main()

总结:
一些细节:

  • 拖动条的处理
  • 无界面模式
  • 翻页灵活处理(2种)
  • 报错的解决(指爬取的数据的处理)
总数量超过五十个,史上最全的爬虫项目集合 五十三个爬虫项目集合,可以说是史上较大的一个爬虫项目集合,该项目集合可以让你由浅入深的学习爬虫,也可以学习借鉴他人完整的爬虫项目,一次吃个饱,收藏一下也不亏 阅读详情

相关推荐

创建一个快速、高效的网络爬虫:PHP和Selenium示例

在实际应用中,我们可以根据需要采取不同的定位方式,自定义操作行为,以实现更加精准、高效的数据爬取。其中,Selenium是一款非常优秀的网络自动化测试工具,能够模拟真实的用户操作,对于构建网络爬虫非常有帮助。使用WebDriver,我们可以自动打开、关闭浏览器,模拟用户的操作行为。在创建PHP项目之前,需要安装Composer(https://getcomposer.org/),并通过命令行创建一个新的PHP项目。需要注意的是,在安装PHP时需要确认已经安装了一些必要的扩展,例如:php-curl。

wx_19970108018的博客 1004

爬虫Spider 08 - chromedriver设置无界面模式 | selenium - 键盘操作 | 鼠标操作 | 切换页面 | iframe子框架 | scrapy框架

文章目录Spider 07回顾cookie模拟登陆三个池子selenium+phantomjs/chrome/firefoxSpider 08 笔记chromedriver设置无界面模式selenium - 键盘操作selenium - 鼠标操作selenium - 切换页面民政部网站案例selenium - iframe子框架百度翻译破解案例scrapy框架练习 Spider 07回顾 cook...

哦 卷! 779

使用Python网络爬虫爬取数据并对其进行可视化分析,加入邮件进行判断爬取过程中是否存在错误

一、设计目的与要求1、设计目的通过本次课程设计,目的是加深、巩固对本门课程基础理论知识的掌握,理论联系实际,充分认识通用爬虫的网页分类、爬虫要遵守的协议、爬取及解析网页的流程。能够熟练运用urllib库或requests库获取网页源代码,掌握正则表达式、Xpath语法、BeautifulSoup模块的使用规则,会使用re、lxml、bs4、json等进行数据的解析,会使用Selenium工具抓取动态网页并解析存储爬虫数据,认识Scrapy框架的架构及运作流程,掌握Scrapy框架的基本操作,学会使用爬虫框架

sgsgsgwe的博客 2076

简单的京东爬虫

京东爬虫欢迎

weixin_45977690的博客 8299

京东评论爬虫,包含对数据的采集、清洗、可视化、分析等过程,作为数据库课程设计项目.zip

爬虫(Web Crawler)是一种自动化程序,用于从互联网上收集信息。其主要功能是访问网页、提取数据并存储,以便后续分析或展示。爬虫通常由搜索引擎、数据挖掘工具、监测系统等应用于网络数据抓取的场景。 爬虫的工作流程包括以下几个关键步骤: URL收集: 爬虫从一个或多个初始URL开始,递归或迭代地发现新的URL,构建一个URL队列。这些URL可以通过链接分析、站点地图、搜索引擎等方式获取。 请求网页: 爬虫使用HTTP或其他协议向目标URL发起请求,获取网页的HTML内容。这通常通过HTTP请求库实现,如Python中的Requests库。 解析内容: 爬虫对获取的HTML进行解析,提取有用的信息。常用的解析工具有正则表达式、XPath、Beautiful Soup等。这些工具帮助爬虫定位和提取目标数据,如文本、图片、链接等。 数据存储: 爬虫将提取的数据存储到数据库、文件或其他存储介质中,以备后续分析或展示。常用的存储形式包括关系型数据库、NoSQL数据库、JSON文件等。 遵守规则: 为避免对网站造成过大负担或触发反爬虫机制,爬虫需要遵守网站的robots.txt协议,限制访问频率和深度,并模拟人类访问行为,如设置User-Agent。 反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等。然而,使用爬虫需要遵守法律和伦理规范,尊重网站的使用政策,并确保对被访问网站的服务器负责。

力扣(Leetcode)第1题:两数之和(C语言版本)

题目: 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出和为目标值 target 的那两个整数,并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。 你可以按任意顺序返回答案。 示例 1: 输入:nums = [2,7,11,15], target = 9 输出:[0,1] 解释:因为 nums[0] + nums[1] == 9 ,返回 [0, 1] 。 示例 2: 输入:nums = [3,2,4], target = 6

qq_39855356的博客 3318

Python爬虫篇(四):京东数据批量采集

keyword=%E7%B2%BD%E5%AD%90&qrst=1&stock=1&page=3&s=53&click=0,提取主要的参数keyword(搜索词)和page(页码),那么主要的url为:https://search.jd.com/Search?一年一度的端午节又到了,甜咸粽子之争也拉开了帷幕,它价格高昂,它味道鲜美,然而,默默无名的它却备受广大民众喜爱!发起请求-获取响应内容-解析内容-保存内容,还是熟悉的老四步曲。,那咱们能做些什么呢,当然是选择盘它啊,今天咱们就看看京东上粽子的行情。

TinagirlAPI的博客 4614

大语言模型无代码构建知识图谱概述

由示例可以看出,大语言模型的泛化能力能够非常精准的抽取文本中的实体、关系等知识信息。其能够大大提升知识提取的效率与准确性。HuggingFists低代码平台的出现进一步促进了知识图谱构建的效率。它大幅降低了知识图谱构建人员的技术要求,使得从事该工作的人员有了更大的选择范围。不断下降的构建成本,意味着可以有更多的客户享受到知识图谱带来的业务价值。

colorknight的专栏 1817

京东商品链接获取京东商品详情数据接口(用 Python 实现京东商品信息抓取)

在网页抓取方面,可以使用 Python、Java 等编程语言编写程序,通过模拟 HTTP 请求,获取京东网站上的商品页面。在数据提取方面,可以使用正则表达式、XPath 等方式从 HTML 代码中提取出有用的信息。值得注意的是,京东网站的页面结构会不断更新,因此需要定期更新程序,以保证数据的准确性。(2)避免被封 IP。京东平台对于频繁访问的 IP 地址会进行封锁,因此需要合理规划访问频率,避免被封 IP。(1)保证数据的准确性。京东平台上的商品信息会不断更新,因此需要定期更新程序,以保证数据的准确性。

weixin_19970108018的博客 1013

Python实战:3种高效方法将txt转csv(附pandas对比测试)

本文针对Python中将txt文件转换为csv格式的需求,深度评测了open()、csv模块和pandas三种主流方法。通过详尽的性能对比测试,从执行效率、内存占用和适用场景等维度提供选型指南,帮助开发者根据数据规模与复杂度选择最高效的转换方案。

weixin_29073241的博客 263

Qt c++ llama.cpp 运行 LLaMA-3-8B 中文对话机器人(多模态输入)

助手:

寒寒豆豆软件公司的博客 222

Java网络爬虫——jsoup快速上手,爬取京东数据。同时解决‘京东安全’防爬问题

java爬虫,爬取京东商品内容。同时解决登录界面跳转问题

qq_62835094的博客 9376

SAP BSIS:总账未清项表(Open Items)总账未清项 包含哪些业务 请给以举例说明

SAP总账未清项是指需要未来核销的会计行项目,仅适用于勾选"未清项管理"的总账科目。典型业务场景包括:供应商预付款(借方未清项)、员工备用金(借方未清项)、客户预收款(贷方未清项)和保险理赔(借方未清项)。系统通过表BSIS/BSAS跟踪未清项,支持明细追踪和账实核对。核心价值在于提供总账级别的明细管理能力,确保往来款项完整清账,简化对账流程,满足特殊业务管理需求。可通过FBL3N事务码查询和管理所有总账未清项。

金牌架构师 724

『哈士奇赠书33期』- 『Python网络爬虫入门到实战』

『哈士奇赠书33期』- 『Python网络爬虫入门到实战』

易编橙 · 终身成长社群,相遇已是上上签! 1万+

SpringBoot整合JWT实战:从零构建无状态认证系统,详解Token生成、验证与安全最佳实践

JWT在SpringBoot中的实现与应用 摘要:本文介绍了JWT(JSON Web Token)的基本概念、与Session机制的对比,以及SpringBoot项目中JWT的整合实现。JWT由Header、Payload和Signature三部分组成,具有无状态、跨域支持等优势。文章详细展示了如何在SpringBoot项目中配置JWT环境,封装JWT工具类来实现Token的生成、解析和验证功能,包括密钥管理、自定义声明、签名验证等核心操作。通过对比表格和生活化比喻,帮助读者理解JWT与传统Session的

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1775

BevFusion (1): 传感器介绍

激光雷达,也称光学雷达(LIght Detection And Ranging)是激光探测与测距系统的简称,它通过测定传感器发射器与目标物体之间的传播距离,分析目标物体表面的反射能量大小、反射波谱的幅度、频率和相位等信息,从而呈现出目标物精确的三维结构信息。激光雷达是自动驾驶车辆的关键传感器,如下图所示,车辆上方旋转的圆柱体对应就是激光雷达传感器。

@bangbang的博客 1475

Python爬虫4.4 — selenium高级用法教程

Python爬虫4.4 — selenium高级用法教程综述Headless Chrome设置请求头设置代理IP常用启动项参数options设置Cookie操作selenium设置cookie行为链常用的行为链操作方法(ActionChains类方法)页面等待1. 隐式等待2. 显示等待expected_conditions类中其他方法切换页面其他博文链接 综述 本系列文档用于对Python爬虫技...

让编程改变世界 5543

n8n AI高效工作流自动化 部署使用教程

摘要: n8n是一款开源可视化工作流自动化工具,结合AI能力可高效解决重复性任务。文章详细介绍了从Docker部署到实战应用的完整流程:1)通过Docker Compose自托管n8n,确保数据可控;2)以AI客服日报机器人为例,演示如何串联工单系统、ChatGPT和邮件通知,实现定时自动化;3)进阶搭建交互式AI助手,利用ToolsAgent节点调用业务API;4)整合向量数据库构建RAG知识库问答。关键建议包括:拆分复杂工作流、严格管理凭据、区分开发与生产环境,并建议从高频刚性需求(如日报生成)切入,逐

专注AI大模型,软件混淆,授权 267

从入门到精通:网络爬虫开发实战总结

学习是一种持续不断的过程,无论在什么领域,都需要不断地努力和探索。在这段爬虫学习历程中,我不仅获得了丰富的知识和技能,也结交了很多志同道合的朋友和粉丝,他们对我的学习和进步都提供了极大的支持和鼓励,支持我继续写下去。 总的来说,这段时间的学习和写作让我认识到了自己的不足和缺陷,也让我更加坚定了继续学习和进步的决心。我相信,在未来的学习和工作中,这段经历将成为我前行的动力和支撑。在这里,我将过去写过的爬虫文章总结一下,不仅是在爬虫学习这里留下一个里程碑,也是为了能够总结一下阶段性学习成果。

weixin_50804299的博客 6560

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python爬虫实战导航索引,30个爬虫项目让你一次吃到撑!!!

Python爬虫入门实战教程目录(持续更新中......)1、淘宝模拟登录2、淘宝登录数据爬取3、12306模拟登陆4、斗鱼爬虫5、B站爬虫6、虎牙爬虫7、京东爬虫8、微博爬虫9、2020疫情数据可视化10、拉勾网爬虫11、爬虫IP代理教程12、BOOS直聘爬虫13、51Job爬虫 1、淘宝模拟登录 Python爬虫实战:Selenium和动作链实现淘宝模拟登录 2、淘宝登录数据爬取 Python爬虫实战:基于Scrapy的淘宝登陆后实现数据爬取并保存到Mysql 3、12306模拟登陆 Python

Code皮皮虾的博客 1万+

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Python网络爬虫之动态网页爬取及使用selenium模块爬取

Python网络爬虫之动态网页爬取及使用selenium模块爬取使用requests模块爬取动态网页数据使用selenium爬取今日头条新闻评论综合案例 使用requests模块爬取动态网页数据 """ 使用requests模块爬取动态网页数据 今日头条:某条新闻的评论信息 """ import requests #路径 url = "https://www.toutiao.com/api/co...

what_to的博客 2927

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

五分钟学会Python网络爬虫

网络爬虫:又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。大数据时代,要进行数据分析,首先要有数据源,可数据源从哪里来,花钱买,没预算,只能从其它网站就行抓取。细分下来,业内分为两类:爬虫和反爬虫。反爬虫:顾名思义,就是防止你来我网站或APP上做爬虫的。爬虫工程师和反爬虫工程师是一对相爱相杀的小伙伴,经常因为对方要加班写代码,甚至丢掉工作。

Everly_的博客 1379

五分钟让你学会Python网络爬虫

但不管怎样,爬虫技术是无罪的,还是值得我们开发人员去学习了解一下的。在学习之前,我们还是要先了解一下相关概念。 什么是爬虫 网络爬虫:又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。 大数据时代,要进行数据分析,首先要有数据源,可数据源从哪里来,花钱买,没预算,只能从其它网站就行抓取。 细分下来,业内分为两类:爬虫和反爬虫。 反爬虫:顾名思义,就是防止你来...

weixin_46606335的博客 1796

爬取网页/接口/selenium时遇见的问题及解决方法

1.若报错:requests.exceptions.SSLError: HTTPSConnectionPool(host='XXX', port=443),在请求时添加代码verify=False。20. 若报错requests.exceptions.SSLError: [SSL: SSL_NEGATIVE_LENGTH] dh key too small (_ssl.c:600)7.若网页内容是下载文件,下载后文件打不开有损坏,可能是url不对。8.图片路径对,但是页面不显示,在src=””前加。

pumpkin_0的博客 2510

爬虫教程:五分钟带你学会Python网络爬虫

网络爬虫:又被称为网页蜘蛛,网络机器人,是一种按照一定的规则,自动的抓取万维网信息的程序或者脚本。大数据时代,要进行数据分析,首先要有数据源,可数据源从哪里来,花钱买,没预算,只能从其它网站就行抓取。细分下来,业内分为两类:爬虫和反爬虫。反爬虫:顾名思义,就是防止你来我网站或APP上做爬虫的。爬虫工程师和反爬虫工程师是一对相爱相杀的小伙伴,经常因为对方要加班写代码,甚至丢掉工作。比如下面这张图,大家用心感受一下:

wly55690的博客 512

【技术笔记】利用Selenium构建服务器无界面爬虫

说在前面 在日常爬虫代码中,我们可以将各大云厂商购买到廉价服务器用来做分发爬虫任务。在一些反爬虫比较厉害的网站,我们一般可以选用Selenium来进行网站爬取。因为它模拟的就是我们平时在浏览器上的操作过程。但是这将会存在一个问题,Selenium 依赖的是具有图形界面的操作,而我们在云平台购买的服务器一般都没有图形界面的(预装Windows系统的除外)。那有没有让它在后台就可以运行的办法呢。答案是有的。下面就介绍一种常见的后台通过Selenium完成爬虫操作的过程。 1:安装浏览器(Google Chr

黑符石笔记集 1290
上一篇: 模板第一次总结--思路
下一篇: 2021/5/20爬虫第十四次课(selenium页面等待,打开多窗口)
笔记本IT
博客等级 码龄7年 21粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

笔记本IT

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值