当前位置: 首页 > news >正文

深圳官方网站制作北京活动策划网站

深圳官方网站制作,北京活动策划网站,购物网站开发中遇到的问题,王占军博客正文#xff08;包含详细注释#xff09; 引言 在爬虫技术领域#xff0c;处理动态加载的网页内容常常是一项挑战#xff0c;尤其是对于那些通过用户滚动或其他交互动态加载更多内容的网站。本文将介绍如何结合使用Selenium和Scrapy来有效处理这类网页。 初探Seleni…博客正文包含详细注释 引言 在爬虫技术领域处理动态加载的网页内容常常是一项挑战尤其是对于那些通过用户滚动或其他交互动态加载更多内容的网站。本文将介绍如何结合使用Selenium和Scrapy来有效处理这类网页。 初探Selenium与Scrapy的结合 首先我们探索如何使用Selenium在Scrapy中间件中处理动态加载内容的网页。关键在于模拟用户滚动行为以加载并捕获所有内容。 def process_response(self, request, response, spider):driver spider.driver# 检查请求的URL是否在我们的目标列表中if request.url in spider.page_url:driver.get(request.url) # 使用Selenium打开页面# 等待页面初步加载完成time.sleep(3) # 示例等待时间可能需要根据实际页面调整# 获取当前页面的高度last_height driver.execute_script(return document.body.scrollHeight)while True:# 滚动到页面底部driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)# 等待页面可能出现的新内容加载time.sleep(3) # 重新获取新的页面高度new_height driver.execute_script(return document.body.scrollHeight)# 如果高度不再改变说明到达了页面底部if new_height last_height:breaklast_height new_height # 更新高度用于下次比较# 获取完整的页面源代码text driver.page_source# 创建新的HtmlResponse并返回return HtmlResponse(urlrequest.url, bodytext, encodingutf-8, requestrequest)# 如果URL不在目标列表中返回原始响应return response完整的Scrapy爬虫实例 下面是一个使用Selenium和Scrapy爬取网易新闻的示例。 import scrapy from selenium.webdriver import Chrome, ChromeOptions from selenium.webdriver.chrome.options import Optionsclass WySpider(scrapy.Spider):name wy # 爬虫名称start_urls [https://news.163.com/domestic/] # 起始URL# Selenium配置opt Options()opt.add_argument(--headless) # 添加headless参数指定浏览器在无界面模式下运行即没有用户界面或可视化界面的情况下。opt.add_argument(--disable-gpu) # 禁用GPU加速opt.add_argument(--window-size4000,1600) # 设置浏览器窗口大小opt.add_experimental_option(excludeSwitches, [enable-automation]) # 防止网站识别出自动化测试driver Chrome(optionsopt) # 创建Chrome驱动href_index [1, 2] # 指定要处理的链接索引page_url [] # 存储目标URL地址# 处理起始URL的响应def parse(self, resp, **kwargs):# 提取链接href_list resp.xpath(/html/body/div/div[3]/div[2]/div[2]/div/ul/li/a/href).extract()for i in range(len(href_list)):if i in self.href_index:# 如果链接在指定索引中添加到目标列表并发起请求self.page_url.append(href_list[i])yield scrapy.Request(urlhref_list[i], callbackself.parse_detail)# 处理获取的新闻类别链接def parse_detail(self, resp, **kwargs):# 提取详细页面的链接detail_url resp.xpath(/html/body/div/div[3]/div[3]/div[1]/div[1]/div/ul/li/div/div/div/div[1]/h3/a/href).extract()for url in detail_url:# 对每个详细新闻链接发起请求yield scrapy.Request(urlurl, callbackself.parse_detail_content)# 提取并处理新闻详细内容def parse_detail_content(self, resp, **kwargs):# 提取新闻标题title resp.xpath(//*[idcontain]/div[2]/h1/text()).extract_first()# 提取新闻内容con resp.xpath(//*[idcontent]/div[2]//text()).extract()con .join(con).strip()data {title: title, con: con} # 封装提取的数据print(data) # 打印数据yield data # 返回提取的数据使用场景 这种结合Selenium和Scrapy的方法适用于需要处理动态加载内容的网页如新闻网站、社交媒体平台等。 结语 通过结合Selenium和Scrapy我们可以有效地处理那些动态加载内容的网页这对于数据抓取和网络爬虫项目至关重要。希望这篇文章能够帮助您在面对类似的挑战时有所启发和帮助。
http://www.sczhlp.com/news/162905/

相关文章:

  • 宿州建设网站公司公众号seo排名
  • 帝国cms怎么做电影网站网站开发流程介绍
  • 网站建设好就业吗今天最新军事新闻视频
  • 视频网站建设注册网站会员需要详细填写
  • 云访客类似的网站好设计官网
  • 东莞网站建设公司哪家好厦门建设企业网站建设
  • 网站空间多少钱一年做网站上传图片一直错误
  • 富阳住房和城乡建设部网站淘宝有WordPress网站搭建吗
  • 电商网站建设流程食品电子商务网站建设规划书
  • 凡科网站怎么做外链免费网络电视直播在线观看
  • javascript高级 - Ref
  • 【AI时代速通QT】第九节:揭秘Qt编译全流程-从.pro材料到可执行程序
  • 测试环境elasticSearch数据泄露排查
  • 深入解析:Spring boot中 限制 Mybatis SQL日志的大字段输出
  • 传奇免费网站建设湖北做网站找谁
  • 天津人工智能建站系统软件大气的网络公司名字
  • 做调像什么网站找活什么是前端开发和后端开发
  • 丽水市莲都区建设局网站网站建设佰首选金手指六
  • 做网站的上市公司有哪些广州seo服务外包
  • 搭建影视网站成都九度装饰设计有限公司
  • 成都网站制作沈阳用家里的电脑做网站服务器
  • 做响应式的网站有哪些公司起名字查询网
  • 城乡与住房建设厅网站首页深圳装修公司报价
  • 手机网站空间申请ppt模板免费下载 素材第一ppt
  • 有几家公司如何建设网站wordpress 实时更新
  • 如何关闭网站 备案建站公司兴田德润简介
  • 古典风格中药医药企业网站模板源码wordpress 产品展示 插件
  • 购物网站功能详细介绍wordpress 网站标题设置
  • 南京做网站dmooo深圳网站订制开发
  • 湘潭做网站价格 q磐石网络殷氏科技网站建设工作室