首页 > 其他分享 >feapder通过selenium爬取网页数据-用到yield关键字可循环爬取

feapder通过selenium爬取网页数据-用到yield关键字可循环爬取

时间:2024-06-01 22:32:25浏览次数:12  
标签:__ feapder selenium li 爬取 item import page

import random
import time

import feapder
from feapder.utils.webdriver import WebDriver
from parsel import Selector
from feapder.db.mysqldb import MysqlDB
from selenium.webdriver.common.by import By


class TestRender(feapder.AirSpider):
db = MysqlDB()

__custom_setting__ = dict(
WEBDRIVER=dict(
pool_size=1, # 浏览器的数量
load_images=True, # 是否加载图片
user_agent=None, # 字符串 或 无参函数,返回值为user_agent
proxy=None, # xxx.xxx.xxx.xxx:xxxx 或 无参函数,返回值为代理地址
headless=False, # 是否为无头浏览器
driver_type="CHROME", # CHROME、EDGE、PHANTOMJS、FIREFOX
timeout=30, # 请求超时时间
window_size=(1024, 800), # 窗口大小
executable_path=None, # 浏览器路径,默认为默认路径
render_time=0, # 渲染时长,即打开网页等待指定时间后再获取源码
custom_argument=["--ignore-certificate-errors"], # 自定义浏览器渲染参数
xhr_url_regexes=[
"/ad",
], # 拦截 http://www.spidertools.cn/spidertools/ad 接口
)
)

def start_requests(self):
yield feapder.Request("https://18je.life/t/1/", render=True)

def parse(self, request, response):
print(request.url)
browser: WebDriver = response.browser
time.sleep(random.randint(3, 6))


lis_ = Selector(browser.page_source).xpath('//ul[@class="list"]/li') # xpath提取
item_list = []
for li in lis_:
item = {}

item["cover"] = li.xpath('.//div[@class="vodlist_img"]/img/@data-original').get('').strip()


item_list.append(item)
print(item_list)
# 写入数据库

random_float = round(random.uniform(0.5, 1.5), 1)
time.sleep(random_float)


next_page = 'https://18je.life'+Selector(browser.page_source).xpath('//ul[@class="pagelist"]/li[last()]/a/@href').extract_first()
if next_page == response.url:
return 0
yield feapder.Request(url=next_page, callback=self.parse,render=True)


if __name__ == "__main__":
TestRender().start()

标签:__,feapder,selenium,li,爬取,item,import,page
From: https://www.cnblogs.com/Lhptest/p/18226511

相关文章

  • 【Python爬虫--scrapy+selenium框架】超详细的Python爬虫scrapy+selenium框架学习笔记
    六,selenium想要下载PDF或者md格式的笔记请点击以下链接获取python爬虫学习笔记点击我获取Scrapy+selenium详细学习笔记点我获取Python超详细的学习笔记共21万字点我获取1,下载配置##安装:pipinstallselenium##它与其他库不同的地方是他要启动你电脑上的浏览器......
  • feapder框架爬虫实战
    #-*-coding:utf-8-*-"""Createdon2024-05-3110:21:56---------@summary:---------@author:me"""importjsonfromfeapder.db.mysqldbimportMysqlDBimportfeapder"""#MYSQLMYSQL_IP="127.0.0.1"MYSQL_PO......
  • python selenium mysql -- 数据爬取2
    fromseleniumimportwebdriverfromselenium.webdriver.common.byimportBydriver=webdriver.Chrome()driver.get('https://www.00ksw.com/html/120/120704/')zj_list=[]#使用更健壮的XPath或CSS选择器links=driver.find_elements(By.XPATH,'/html/bo......
  • Uscrapper:一款功能强大的网络资源爬取工具
    关于UscrapperUscrapper是一款功能强大的网络资源爬取工具,该工具可以帮助广大研究人员从各种网络资源中轻松高效地提取出有价值的数据,并且提供了稳定、友好且易于使用的UI界面,是安全研究人员和网络分析人员的强有力工具。Uscrapper最大程度地释放了开源情报资源的力量,该工具......
  • Selenium Python 无法找到仅有类的定义不清的网络按钮
    我拥有的HTML元素是YesCancel我想点击"是"按钮,因此我尝试了以下3种方法yes_driver2=driver.find_element("xpath",'//button[text()="Yes"]')yes_driver2.click()yes_driver3=driver.find_elements(By.XPATH,'//button[contains(text(),&q......
  • Python selenium webdriver
    元素定位第一步,导入selenium模块的webdrivier包importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy窗口最大化driver=maximize_window()第二步,调用webdriver包的Chrome类,返回chrome浏览器对象driver=webdriver.Chrome()第三步,如使用......
  • selenium模拟登录网站
     importtimeimportrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.byimportBybrowser=webdriver.Edge()browser.maximize_window()url="https://m.xiaoshuopu.com/user/login.html"browser.get(url)username_input=b......
  • 如何隐藏 Firefox 窗口(Selenium WebDriver)?
    在Python中使用SeleniumWebDriver隐藏Firefox窗口通常涉及到配置FirefoxOptions来禁用其图形界面的显示。以下是一个详细的步骤和代码示例:1.首先,确保你已经安装了selenium库,以及geckodriver(适用于Firefox浏览器)。如果还没有安装,可以通过pip进行安装:```bashpipinstallsel......
  • 利用Python和Selenium进行网页自动化:全面教程
    引言在当今数字化时代,自动化测试和网页交互变得越来越重要。Python,作为一种易于学习和功能强大的编程语言,与Selenium结合使用,为网页自动化提供了强大的支持。本教程将深入介绍如何使用Python和Selenium进行网页自动化,从而实现高效的数据抓取、自动化测试和网页交互。什么......
  • from selenium import webdriver
    url='https://chat18.aichatos8.com'chrome_binary_path='/Users/baidu/project/script/chromedriver/chrome-mac-arm64/GoogleChromeforTesting.app/Contents/MacOS/GoogleChromeforTesting'chromedriver_path='/Users/baidu/project/s......