首页 > 其他分享 >花瓣网爬虫

花瓣网爬虫

时间:2023-10-08 16:58:20浏览次数:31  
标签:fetched keyword links driver 爬虫 花瓣 save dir

from selenium import webdriver
from selenium.webdriver.common.by import By
import time
import os

BASE_URL = "https://huaban.com/search?q={keyword}&sort=all&type=board&category=industrial_design"

def search_and_save_links(driver, keyword, save_dir):
driver.get(BASE_URL.format(keyword=keyword))

fetched_links = set()
prev_num_links = -1

# 滚动页面直到没有新的链接为止
while len(fetched_links) > prev_num_links:
prev_num_links = len(fetched_links)

# 获取所有符合条件的链接
elements = driver.find_elements(By.XPATH, '//a[contains(@class, "UwLo0Up5") and starts-with(@href, "/boards/")]')
for ele in elements:
link = ele.get_attribute('href')
fetched_links.add(link)

# 滚动
driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")
time.sleep(5) # 增加等待时间

# 保存链接到txt文件
with open(os.path.join(save_dir, f"{keyword}.txt"), "w", encoding="utf-8") as file:
for link in fetched_links:
file.write(link + "\n")

def main():
# 获取关键词、保存地址
keywords = input("请输入搜索关键词,用','隔开:").split(",")
save_dir = input("请输入保存地址,例如:C:\\Users\\皮皮\\Desktop:")

if not os.path.exists(save_dir):
os.makedirs(save_dir)

# 统一浏览器初始化
driver = webdriver.Chrome()

for keyword in keywords:
keyword = keyword.strip()
try:
search_and_save_links(driver, keyword, save_dir)
except Exception as e:
print(f"Error occurred while fetching links for keyword {keyword}: {e}")

driver.quit()

if __name__ == "__main__":
main()

标签:fetched,keyword,links,driver,爬虫,花瓣,save,dir
From: https://www.cnblogs.com/zly324/p/17749575.html

相关文章

  • 异步爬虫实战:实际应用asyncio和aiohttp库构建异步爬虫
    在网络爬虫的开发中,异步爬虫已经成为一种非常流行的技术。它能够充分利用计算机的资源,提高爬虫效率,并且能够处理大量的运算请求。Python中的asyncio和aiohttp库提供了强大的异步爬虫支持,使得开发者能够轻松构建高效的异步爬虫。什么是异动爬虫?为什么要使用自动爬虫?异步爬虫是一......
  • 如何提升爬虫IP使用效率?精打细算的方法分享
    在进行爬虫数据采集时,爬虫IP是不可或缺的工具。然而,爬虫IP的费用可能是一个爬虫项目的重要开支之一。为了帮助您节省爬虫IP经费,本文将分享一些经济高效的方法,让您在使用爬虫IP时更加节约成本,提高经济效益。一、优化爬虫IP的使用1、指定目标网站:只针对需要爬取的目标网站使用爬虫IP,......
  • HttpClient实现爬虫开发
    网络爬虫是一种高效获取网络信息的方式,而HttpClient是一个强大而灵活的Java库,提供了方便的API和丰富的功能,使其成为开发高效且灵活的网络爬虫的理想选择。本文将分享如何利用HttpClient库进行网络爬虫开发,帮助您更好地理解并实践网络爬虫的开发过程,具备实际操作价值。一、HttpClie......
  • 【爬虫实战】用python爬小红书某话题的笔记,以#杭州亚运会#为例
    目录一、爬取目标二、爬虫代码讲解2.1分析过程2.2爬虫代码三、演示视频四、获取完整代码一、爬取目标您好!我是@马哥python说,一名10年程序猿。最近的亚运会大家都看了吗。除了振奋人心,还主打一个爱憎分明(主要针对小日子和韩国),看了的小伙伴都懂得!我用python爬取了小红书上#杭......
  • Python爬虫源码,Behance 作品图片及内容采集爬虫附工具脚本!
    Behance网站是设计师灵感必备网站这个网站跟国内的网站,花瓣网很像,甚至可以说花瓣学习了它不少,在瀑布流网页的展示上也有很多相似之处。前面本渣渣就分享过花瓣网图片采集爬虫,感兴趣可以移步查看,现在还能用!【爬虫】花瓣图片爬虫,Python图片采集下载源码Python爬虫tkinter,花瓣工业设......
  • 01. 网络爬虫概述
    一、什么是网络爬虫  网络爬虫(又称为网络蜘蛛、网络机器人)可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过Python可以很轻松地编写爬虫程序或者是脚本。简单的来说,爬虫就是通过编写程序,模拟浏览器上网,然后让其去互联网上抓取数据的过程。网络爬虫在法律上......
  • 【爬虫】python数据挖掘-lxml模块-3
    Python爬虫掌握lxml模块中使用xpath语法定位元素提取属性值或文本内容掌握lxml模块中etree.tostring函数的使用1.lxml模块的安装与使用示例lxml模块是一个第三方模块,安装之后使用1.1lxml模块的安装对发送请求获取的xml或html形式的响应内容进行提取pip/pip3installlxml知识......
  • Python爬虫源码,Behance 作品图片及内容 selenium 采集爬虫
    前面有分享过requests采集Behance作品信息的爬虫,这篇带来另一个版本供参考,使用的是无头浏览器selenium采集,主要的不同方式是使用selenium驱动浏览器获取到页面源码,后面获取信息的话与前篇一致。Python爬虫源码,Behance作品图片及内容采集爬虫附工具脚本!理论上,几乎所有的页面内......
  • 爬虫基础
    1.爬虫的概念模拟浏览器,发送请求,获取响应网络爬虫就是模拟客户端发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。原则上,只要是客户端(浏览器)能做的事情,爬虫都能够做爬虫也只能获取客户端(浏览器)所展示出来的数据2.爬虫的作用作用很多,例如:数据采集:......
  • 爬虫概要
    1.知识碎片化要有足够的知识储备2.学习难度先轻后重爬虫是和开发运维的技术对抗,有价值的数据的爬取还是比较困难的。需要技术功底扎实。3.学习特点案例分散,需要触类旁通。多练习。4.后续发展不断学习新知识,掌握新技巧。5.法律层面把握好法律和道德底线,不要越过红线。......