爬虫入门四(抽屉半自动点赞、xpath使用、动作链、打码平台、scrapy框架介绍与安装及创建项目)

文章目录

  • 一、抽屉半自动点赞
  • 二、xpath的使用
  • 三、动作链
  • 四、打码平台
    • 介绍
    • 超级鹰打码基本测试
  • 五、自动登录超级鹰
  • 六、scrapy框架
    • 介绍
    • 安装
    • 创建爬虫项目

一、抽屉半自动点赞

	'登录抽屉账号保存cookies'import timeimport jsonfrom selenium import webdriverfrom selenium.webdriver.common.by import Bybro = webdriver.Chrome()bro.get('https://dig.chouti.com/')bro.implicitly_wait(10)bro.maximize_window()# 找到登录按钮,点击submit_btn = bro.find_element(by=By.ID,value='login_btn')submit_btn.click()# 找到用户名密码框--输入用户名和密码username = bro.find_element(By.CSS_SELECTOR,'body > div.login-dialog.dialog.animated2.scaleIn > div > div.login-body > div.form-item.login-item.clearfix.phone-item.mt24 > div.input-item.input-item-short.left.clearfix > input')password = bro.find_element(By.CSS_SELECTOR,'body > div.login-dialog.dialog.animated2.scaleIn > div > div.login-footer > div.form-item.login-item.clearfix.mt24 > div > input.input.pwd-input.pwd-input-active.pwd-password-input')username.send_keys('xxxxx')  # 手机号time.sleep(2)password.send_keys('xxxx')  # 密码time.sleep(2)submit = bro.find_element(By.CSS_SELECTOR,'body > div.login-dialog.dialog.animated2.scaleIn > div > div.login-footer > div:nth-child(4) > button')submit.click()input('等待人工确认登录----回车键后登录')# 登陆成功保存cookiecookies = bro.get_cookies()print(cookies)with open('chouti.json','wt',encoding='utf-8')as f:json.dump(cookies,f)time.sleep(5)bro.close()
	'使用上面保存的cookie进行登录并点赞'# 使用requests模块点赞,把当前页面所有的文章点一遍import requestsfrom bs4 import BeautifulSoupimport json# 1.获取第一个的所有文章的id号headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36','Referer':'https://dig.chouti.com/'}res = requests.get('https://dig.chouti.com/',headers=headers)# print(res.text)# 解析soup=BeautifulSoup(res.text,'lxml')div_list = soup.find_all(name='div',class_='link-item')# 获取本地cookiewith open('chouti.json','rt',encoding='utf-8')as f:cookies = json.load(f)requests_cookies={}for cookie in cookies:requests_cookies[cookie['name']]=cookie['value']print('requests模块需要的cookie格式',requests_cookies)for div in div_list:article_id = div.attrs.get('data-id')# print(article_id)# 要携带cookiedata = {'linkId':article_id}res = requests.post('https://dig.chouti.com/link/vote',headers=headers,cookies=requests_cookies,data=data)print(res.text)

二、xpath的使用

'''
# 语法格式如下(记住这几个)
1 标签名   # 找xml中所有这个标签
2 /       # 只找一层]
3 //      # 子子孙孙都会找
4 .       # 从当前路径下
5 ..      # 上一层
6 @属性名 # 找有这个属性的标签
'''doc='''
<html><head><base href='http://example.com/' /><title>Example website</title></head><body><div id='images'><a href='image1.html' id='id_a' name='lqz'>Name: My image 1 <br /><img src='image1_thumb.jpg' /></a><a href='image2.html'>Name: My image 2 <br /><img src='image2_thumb.jpg' /></a><a href='image3.html'>Name: My image 3 <br /><img src='image3_thumb.jpg' /></a><a href='image4.html'  class='li'>Name: My image 4 <br /><img src='image4_thumb.jpg' /></a><a href='image5.html' class='li li-item' name='items'>Name: My image 5 <br /><img src='image5_thumb.jpg' /></a><a href='image6.html' name='items'><span><h5>test</h5></span>Name: My image 6 <br /><img src='image6_thumb.jpg' /></a></div></body>
</html>
'''
from lxml import etree
html=etree.HTML(doc)  # 加载字符串
# html=etree.parse('search.html',etree.HTMLParser())  # 加载文件# 1 所有节点
print(html.xpath('//*'))
print(html.xpath('/*'))# 2 指定节点(结果为列表)
print(html.xpath('//head'))# 3 子节点,子孙节点
print(html.xpath('//div/a'))
print(html.xpath('//body/a')) #无数据
print(html.xpath('//body//a'))# 4 父节点
print(html.xpath('//body//a[@href="image1.html"]/..'))  # 上一节点 div  a..
print(html.xpath('//body//a[1]/..'))  # 从1开始 第一个a标签..
# 也可以这样
print(html.xpath('//body//a[1]/parent::*'))  # 找父亲---》父亲可以是任意标签
print(html.xpath('//body//a[1]/parent::div'))  # 找父亲---》父亲可以是任意标签# 5 属性匹配
print(html.xpath('//a[@href="image1.html"]'))  # 属性匹配 标签为 a# 6 文本获取(记住)
print(html.xpath('//body//a[@href="image1.html"]/text()'))  # 内容获取 a标签内的内容['Name: My image 1 ']# 7 属性获取(记住)
print(html.xpath('//body//a/@href'))  # 拿所有a的href属性
print(html.xpath('//body//a[1]/@href')) # 从1开始
# 注意从1 开始取(不是从0)
print(html.xpath('//body//a[1]/@href'))# 8 属性多值匹配
#  a 标签有多个class类,直接匹配就不可以了,需要用contains
print(html.xpath('//body//a[@class="li"]')) # 有个类叫li的所有a标签,因为这个a有俩类
print(html.xpath('//body//a[contains(@class,"li")]'))  # 属性多值匹配 匹配a标签内有class = li的标签
print(html.xpath('//body//a[contains(@class,"li")]/text()'))  # 属性多值匹配 匹配a标签内有class = li的标签的值# 9 多属性匹配
print(html.xpath('//body//a[contains(@class,"li") or @name="items"]'))   # 多属性匹配 匹配a标签内有class=li or name=itmes的内容
print(html.xpath('//body//a[contains(@class,"li") and @name="items"]/text()'))  # 多属性匹配 匹配a标签内有class=li and name=itmes的内容
print(html.xpath('//body//a[contains(@class,"li")]/text()'))# 10 按序选择
print(html.xpath('//a[2]/text()'))  # 按序选择 查找第二个a标签的内容
print(html.xpath('//a[2]/@href'))  # 按序选择 查找第三个a标签的@href内容
# 取最后一个
print(html.xpath('//a[last()]/@href'))  # 按序选择 查找最后一个a标签的@href内容
# 位置小于3的
print(html.xpath('//a[position()<3]/@href'))  # 按序选择 查找标签位置小于3的位置
# 倒数第二个
print(html.xpath('//a[last()-2]/@href'))  # 按序选择 查找倒数第二个a标签# 11 节点轴选择
# ancestor:祖先节点
# 使用了* 获取所有祖先节点
print(html.xpath('//a/ancestor::*'))
# # 获取祖先节点中的div
print(html.xpath('//a/ancestor::html'))# attribute:属性值
print(html.xpath('//a[1]/attribute::*'))  # 获取第一个a标签的属性值
print(html.xpath('//a[1]/attribute::id'))# child:直接子节点
print(html.xpath('//a[1]/child::*'))  # 获取第一个a标签的的子节点
print(html.xpath('//a[1]/child::img'))
# descendant:所有子孙节点
print(html.xpath('//a[6]/descendant::*'))  # 获取第六个a标签的子节点
# following:当前节点之后所有节点
print(html.xpath('//a[1]/following::*'))  # 获取第一个a标签之后的所有节点
print(html.xpath('//a[1]/following::*[1]/@href'))  # 获取第1个a标签之后的所有节点里面的第一个href里面所有的节点
# following-sibling:当前节点之后同级节点
print(html.xpath('//a[1]/following-sibling::*'))  # 获取第一个a标签之后所有同级节点
print(html.xpath('//a[1]/following-sibling::a'))  # 获取第一个a标签之后同级a节点
print(html.xpath('//a[1]/following-sibling::*[2]'))  # 获取第一个a标签之后所有同级节点第二个节点
print(html.xpath('//a[1]/following-sibling::*[2]/@href'))  # 获取第一个a标签之后所有同级节点第二个节点里面href的属性

三、动作链

	from selenium import webdriverfrom selenium.webdriver import ActionChainsfrom selenium.webdriver.support.wait import WebDriverWait  # 等待页面加载某些元素import timefrom selenium.webdriver.common.by import Bydriver = webdriver.Chrome()driver.get('http://www.runoob.com/try/try.php?filename=jqueryui-api-droppable')driver.implicitly_wait(3)driver.maximize_window()try:driver.switch_to.frame('iframeResult')  ##切换到iframeResultsourse = driver.find_element(By.ID, 'draggable')target = driver.find_element(By.ID, 'droppable')'''拿到actions对象后,对象有很多方法1 把标签1 拖动到标签2上actions.drag_and_drop(标签1,标签2) 2 一点点滑动某个标签actions.click_and_hold(标签1).perform()actions.move_by_offset(x,y) # 把标签1 滑动x轴和y轴的距离3 滑动某个标签,一些距离actions.drag_and_drop_by_offset(标签1,x,y)'''# 方式一:基于同一个动作链串行执行# actions = ActionChains(driver)  # 拿到动作链对象# actions.drag_and_drop(sourse, target)  # 把动作放到动作链中,准备串行执行# actions.perform()# 方式二:不同的动作链,每次移动的位移都不同ActionChains(driver).click_and_hold(sourse).perform()  # 鼠标点中源 标签 不松开distance=target.location['x']-sourse.location['x']track = 0while track < distance:ActionChains(driver).move_by_offset(xoffset=10, yoffset=0).perform()track += 10ActionChains(driver).release().perform()# 方式三:# actions = ActionChains(driver)# actions.drag_and_drop_by_offset(sourse,200,0).perform()time.sleep(5)finally:driver.close()

四、打码平台

介绍

	'网站有验证码,验证码破解'-简单验证码:字母数字组合---》免费的就能破---》ddddocr-https://www.jb51.net/article/249636.htm-复杂的:收费---》打码平台--》花钱帮我们破解验证码把验证码图片传给它--->它识别完--》返回结果---》根据复杂度收费-超级鹰:http://www.chaojiying.com/-下载SDK-云打码:https://zhuce.jfbym.com/price/

超级鹰打码基本测试

#!/usr/bin/env python
# coding:utf-8import requests
from hashlib import md5class Chaojiying_Client(object):def __init__(self, username, password, soft_id):self.username = usernamepassword =  password.encode('utf8')self.password = md5(password).hexdigest()self.soft_id = soft_idself.base_params = {'user': self.username,'pass2': self.password,'softid': self.soft_id,}self.headers = {'Connection': 'Keep-Alive','User-Agent': 'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0)',}def PostPic(self, im, codetype):"""im: 图片字节codetype: 题目类型 参考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,}params.update(self.base_params)files = {'userfile': ('ccc.jpg', im)}r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, files=files, headers=self.headers)return r.json()def PostPic_base64(self, base64_str, codetype):"""im: 图片字节codetype: 题目类型 参考 http://www.chaojiying.com/price.html"""params = {'codetype': codetype,'file_base64':base64_str}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/Processing.php', data=params, headers=self.headers)return r.json()def ReportError(self, im_id):"""im_id:报错题目的图片ID"""params = {'id': im_id,}params.update(self.base_params)r = requests.post('http://upload.chaojiying.net/Upload/ReportError.php', data=params, headers=self.headers)return r.json()if __name__ == '__main__':# chaojiying = Chaojiying_Client('超级鹰用户名', '超级鹰用户名的密码', '96001')	#用户中心>>软件ID 生成一个替换 96001im = open('a.jpg', 'rb').read()		#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//print(chaojiying.PostPic(im, 1902))	#1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()#print chaojiying.PostPic(base64_str, 1902)  #此处为传入 base64代码

五、自动登录超级鹰

import time
from selenium import webdriver
from selenium.webdriver.common.by import By
from PIL import Image
from chaojiying import Chaojiying_Client
bro = webdriver.Chrome()
bro.get('https://www.chaojiying.com/user/login/')
bro.implicitly_wait(10)
bro.maximize_window()# 截图全屏
bro.save_screenshot('main.png')
# 找到用户名和密码,验证码输入框
username = bro.find_element(By.CSS_SELECTOR,'body > div.wrapper_danye > div > div.content_login > div.login_form > form > p.login_form_item > input')
password = bro.find_element(By.CSS_SELECTOR,'body > div.wrapper_danye > div > div.content_login > div.login_form > form > p:nth-child(2) > input')
code = bro.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[3]/input')# 输入用户名,密码,验证码
username.send_keys('')
time.sleep(2)
password.send_keys('!')
time.sleep(2)
# 破解验证码,从截图中获取验证码
img=bro.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/div/img')
# 找到img的大小和位置
location = img.location
size = img.size
print('大小是:', img.size)
print('位置是:', img.location)
# 获取图的 起始位置坐标  结束位置坐标
img_tu = (int(location['x']), int(location['y']), int(location['x'] + size['width']), int(location['y'] + size['height']))
# 使用pillow,根据坐标,扣除验证码图片
img = Image.open('./main.png')
# 抠图
fram = img.crop(img_tu)
# 截出来的小图
fram.save('code1.png')# 调用超级鹰
# chaojiying = Chaojiying_Client('17786176326','Mao0227!','958083')
# im = open('code1.png', 'rb').read()		#本地图片文件路径 来替换 a.jpg 有时WIN系统须要//
# real_code = chaojiying.PostPic(im, 1902)['pic_str'] #1902 验证码类型  官方网站>>价格体系 3.4+版 print 后要加()# 使用ddddocr
import ddddocr
ocr = ddddocr.DdddOcr(old=True,show_ad=False)
# 第一个验证码截图保存:verification_code_1.png
with open('./code1.png','rb')as f:image = f.read()
real_code = ocr.classification(image)code.send_keys(real_code)
time.sleep(5)# 找到登录按钮,登录
submit = bro.find_element(By.XPATH,'/html/body/div[3]/div/div[3]/div[1]/form/p[4]/input')
submit.click()
time.sleep(10)
bro.close()

六、scrapy框架

介绍

前面讲的都是使用模块 做专业的爬虫可以使用框架Scrapy爬虫框架(做爬虫用的东西都封装好了只需要在固定的位置写固定的代码即可)

Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速、简单、可扩展的方式从网站中提取所需的数据。但目前Scrapy的用途十分广泛,可用于如数据挖掘、监测和自动化测试等领域,也可以应用在获取API所返回的数据或者通用的网络爬虫

安装

	'安装 (win看人品,linux,mac一点问题没有)'-pip install  scrapy-装不上,基本上是因为twisted装不了,单独装1、pip3 install wheel #安装后,便支持通过wheel文件安装软件,wheel文件官网:https://www.lfd.uci.edu/~gohlke/pythonlibs3、pip3 install lxml4、pip3 install pyopenssl5、下载并安装pywin32:https://sourceforge.net/projects/pywin32/files/pywin32/6、下载twisted的wheel文件:http://www.lfd.uci.edu/~gohlke/pythonlibs/#twisted7、执行pip3 install 下载目录\Twisted-17.9.0-cp36-cp36m-win_amd64.whl8、pip3 install scrapy在 D:\Python解释器对应的版本\Scripts 路径下 会有scrapy可执行文件-它等同于,你安装了django--》多两个djagno-admin可执行文件

创建爬虫项目

	1.创建项目scrapy startproject 爬虫名称2.创建爬虫scrapy genspider cnblogs www.cnblogs.com  # 这里是创建一个cnblogs的爬虫3.scrapy crawl cnblogs --nolog 		# --log 取消日志功能4.pycharm中运行新建run.pyfrom scrapy.cmdline import executeexecute(['scrapy', 'crawl', 'cnblogs','--nolog'])

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2808234.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

基于YOLOv5+PySide6的火灾火情火焰检测系统设计深度学习

wx供重浩&#xff1a;创享日记 对话框发送&#xff1a;225火灾 获取完整源码源文件已标注的数据集&#xff08;1553张&#xff09;配置跑起来说明 可有偿49yuan一对一远程操作&#xff0c;在你电脑跑起来 效果展示&#xff1a; ​数据集在下载的文件夹&#xff1a;yolov5-5.0\…

一键生成PDF即刻呈现:轻松创建无忧体验

在信息爆炸的时代&#xff0c;我们每天都在与各种文件、资料打交道。无论是工作中的报告、合同&#xff0c;还是学习中的笔记、论文&#xff0c;如何高效、安全地管理这些珍贵的资料&#xff0c;成为了我们迫切的需求。幸运的是&#xff0c;随着科技的发展&#xff0c;我们不再…

PX4FMU和PX4IO最底层启动过程分析(下)

PX4FMU和PX4IO最底层启动过程分析&#xff08;下&#xff09; PX4FMU的系统启动函数为nash_main(int argc,char *argv[]) PX4IO的系统启动函数为nash_start(int argc,char *argv[]) PX4FMU启动函数nash_main(int argc,char *argv[]) 首先分析一下nash_main(int argc,char *a…

五大方法教你如何分分钟构造百万测试数据!

在测试的工作过程中&#xff0c;很多场景是需要构造一些数据在项目里的&#xff0c;方便测试工作的进行&#xff0c;构造的方法有很多&#xff0c;难度和技术深度也不一样。本文提供方法供你选择。 在测试的工作过程中&#xff0c;很多场景是需要构造一些数据在项目里的&#…

【《高性能 MySQL》摘录】第 2 章 MySQL 基准测试

文章目录 2.1 为什么需要基准测试2.2 基准测试的策略2.2.1 测试何种指标 2.3 基准测试方法2.3.1 设计和规划基准测试2.3.2 基准测试应该运行多长时间2.3.3 获取系统性能和状态2.3.4 获得准确的测试结果2.3.5 运行基准测试并分析结果2.3.6 绘图的重要性 2.4 基准测试工具…

vue3 实现 el-pagination页面分页组件的封装以及调用

示例图 一、组件代码 <template><el-config-provider :locale"zhCn"><el-pagination background class"lj-paging" layout"prev, pager, next, jumper" :pager-count"5" :total"total":current-page"p…

深入浅出JVM(十)之字节码指令(下篇)

上篇文章深入浅出JVM&#xff08;九&#xff09;之字节码指令&#xff08;上篇&#xff09;已经深入浅出说明加载存储、算术、类型转换的字节码指令&#xff0c;本篇文章作为字节码的指令的下篇&#xff0c;深入浅出的解析各种类型字节码指令&#xff0c;如&#xff1a;方法调用…

计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】

&#x1f308;个人主页&#xff1a;godspeed_lucip &#x1f525; 系列专栏&#xff1a;Cisco Packet Tracer实验 本文对应的实验报告源文件请关注微信公众号程序员刘同学&#xff0c;回复思科获取下载链接。 实验目的实验环境实验内容MAC地址、IP地址、ARP协议总线型以太网的…

2024-02-25 Unity 编辑器开发之编辑器拓展7 —— Inspector 窗口拓展

文章目录 1 SerializedObject 和 SerializedProperty2 自定义显示步骤3 数组、List 自定义显示3.1 基础方式3.2 自定义方式 4 自定义属性自定义显示4.1 基础方式4.2 自定义方式 5 字典自定义显示5.1 SerizlizeField5.2 ISerializationCallbackReceiver5.3 代码示例 1 Serialize…

音频smmu问题之smmu学习

一、音频smmu 内存访问问题 在工作中&#xff0c;遇到一个smmu问题&#xff0c;主要log信息如下&#xff1a; arm-smmu 15000000.apps-smmu: Unhandled arm-smmu context fault from soc:spf_core_platform:qcom,msm-audio-ion! arm-smmu 15000000.apps-smmu: FAR 0x0000000…

【考研数学】基础阶段习题1800和660怎么选❓

我建议以1800题为主 1800题包含基础和强化两部分&#xff0c;基础部分题量很大&#xff0c;类型也很全面&#xff0c;并且难度一点也不高&#xff0c;适合基础不好的学生来做。 660题难度比较大&#xff0c;不适合基础阶段做。 660题虽然名字叫基础训练&#xff0c;但是不适…

超详细!彻底说明白Redis持久化

本文已收录至Github&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 文章目录 Redis持久化方式RDBfork 函数与写时复制RDB 相关配置 AOFAOF 文件解读AOF 的写入与同步AOF 重写AOF重写的实现AOF 重写面临的问题AOF重写缓存区 AOF相关配置AOF …

车载电子电器架构 —— OEM基础技术概念开发流程

车载电子电器架构 —— 基础技术概念开发 我是穿拖鞋的汉子&#xff0c;魔都中坚持长期主义的汽车电子工程师。 老规矩&#xff0c;分享一段喜欢的文字&#xff0c;避免自己成为高知识低文化的工程师&#xff1a; 屏蔽力是信息过载时代一个人的特殊竞争力&#xff0c;任何消耗…

Spring Cloud Gateway官方文档学习

文章目录 推荐写在前面一、熟悉Gateway基本概念与原理1、三大概念2、工作流程 二、基本使用路由断言的两种写法 三、路由断言工厂1、After路由断言工厂2、Before路由断言工厂3、Between路由断言工厂4、Cookie路由断言工厂5、Header路由断言工厂6、Host路由断言工厂7、Method路由…

《插入排序》与《选择排序》

目录 前言&#xff1a; 排序的概念&#xff1a; 插入排序&#xff1a; 1.直接插入排序&#xff1a; 2.希尔排序( 缩小增量排序 )&#xff1a; 选择排序&#xff1a; 1.直接选择排序: 2.快速排序&#xff1a; hore思想&#xff1a; 挖坑法&#xff1a; 双指针法&#…

【风格迁移】CAST:对比学习,从图像特征而非其二阶统计量(Gram矩阵)中学习风格

CAST&#xff1a;对比学习&#xff0c;从图像特征而非其二阶统计量&#xff08;Gram矩阵&#xff09;中学习风格 提出背景5 why 分析5 so分析 CAST 框架多层风格投影器领域增强模块生成网络 效果对比 StyleGAN 提出背景 论文&#xff1a;https://arxiv.org/pdf/2205.09542.pdf…

如何使用移动端设备在公网环境远程访问本地黑群晖

文章目录 前言本教程解决的问题是&#xff1a;按照本教程方法操作后&#xff0c;达到的效果是前排提醒&#xff1a; 1. 搭建群晖虚拟机1.1 下载黑群晖文件vmvare虚拟机安装包1.2 安装VMware虚拟机&#xff1a;1.3 解压黑群晖虚拟机文件1.4 虚拟机初始化1.5 没有搜索到黑群晖的解…

linux常用的网络命令实战分享

文章目录 ifup/down命令ifconfig命令观察网络接口信息修改接口参数增加虚拟网络接口 route命令查看路由表增加路由表规则删除路由表规则 IP 命令ip linkip addr设定路由 ip route arp 命令 在实际研发运维工作中常常会涉及到网关相关的操作和知识&#xff0c;这里对linux下常用…

电脑msvcp100.dll丢失了怎么办?msvcp100.dll丢失的5种解决方法

当计算机系统中无法找到msvcp100.dll文件&#xff0c;或者遭遇msvcp100.dll丢失的情况时&#xff0c;可能会引发一系列运行问题和功能障碍。msvcp100.dll是Microsoft Visual C Redistributable Package的一部分&#xff0c;这是一个至关重要的动态链接库文件&#xff0c;对于许…

LeetCode第二题: 两数相加

文章目录 题目描述示例 解题思路 - 迭代法Go语言实现 - 迭代法算法分析 解题思路 - 模拟法Go语言实现 - 模拟法算法分析 解题思路 - 优化模拟法主要方法其他方法的考虑 ‍ 题目描述 给出两个非空的链表用来表示两个非负的整数。其中&#xff0c;它们各自的位数是按照逆序的方…