class ReuseChrome(Remote):
def __init__(self, command_executor, session_id):
selfr_session_id= session_id
Remote__init__(self, command_executor=command_executor, desired_capabilities={})
def start_session(self, capabilities, browser_profile=None):
if not isinstance(capabilities, dict):
raise InvalidArgumentException("Capabilities must be a dictionary")
if browser_profile:
if "moz:firefoxOptions" in capabilities:
capabilities["moz:firefoxOptions"]["profile"] = browser_profileencoded
else:
capabilitiesupdate({'firefox_profile': browser_profileencoded})
selfcapabilities= optionsOptions()to_capabilities()
selfsession_id= selfr_session_id
selfw3c= False
2、访问已打开页面方式:
dr= ReuseChrome(command_executor=old_curl, session_id=sessionid)
其中old_curl需在原来打开的页面上获取:
old_curl=drcommand_executor_url #一定要用这个方法,获取当前地址是行不通的!
sessionid=drsession_id>>> import >这个读不了网页元素,是因为你的网页都没有打开!它怎么去读取元素。建议用chrome来做这些页面 *** 作,会比较好用,没有这么多问题,IE和Firefox对这个webdriver支持不太好,会有很多问题!Scrapy是一个用Python写的Crawler Framework,简单轻巧,并且非常方便。Scrapy使用Twisted这个异步网络库来处理网络通信,架构清晰,并且包含了各种中间件接口,可以灵活地完成各种需求。Scrapy整体架构如下图所示:
根据架构图介绍一下Scrapy中的各大组件及其功能:
Scrapy引擎(Engine):负责控制数据流在系统的所有组建中流动,并在相应动作发生触发事件。
调度器(Scheduler):从引擎接收Request并将它们入队,以便之后引擎请求request时提供给引擎。
下载器(Downloader):负责获取页面数据并提供给引擎,而后提供给Spider。
Spider:Scrapy用户编写用于分析Response并提取Item(即获取到的Item)或额外跟进的URL的类。每个Spider负责处理一个特定(或一些网站)。
Item Pipeline:负责处理被Spider提取出来的Item。典型的处理有清理验证及持久化(例如存储到数据库中,这部分后面会介绍存储到MySQL中,其他的数据库类似)。
下载器中间件(Downloader middlewares):是在引擎即下载器之间的特定钩子(special hook),处理Downloader传递给引擎的Response。其提供了一个简便的机制,通过插入自定义代码来扩展Scrapy功能(后面会介绍配置一些中间并激活,用以应对反爬虫)。
Spider中间件(Spider middlewares):是在引擎及Spider之间的特定钩子(special hook),处理Spider的输入(response)和输出(Items即Requests)。其提供了一个简便的机制,通过插入自定义的代码来扩展Scrapy功能。1、在电脑搜索框中输入python进行搜索,在搜索结果中打开python编辑器。
2、输入程序代码。
3、如果代码很少,比如只有一行的,可以在打开的编辑器中直接输入程序代码新建窗口。
4、如果程序代码较长的,点击File—NewFile新建程序窗口。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)