爬取一个页面的数据,爬取a标签中的数据和href,href中有路径,爬取a标签,写一个点击事件,跳转到别的页面中爬取数据,爬取成功后,怎么返回原页面,继续爬
driver.window_handle #获取当前也句柄
driver.switch_to.window() #切换窗口
driver.close() #关闭当前句柄
driver.switch_to.window()#回到首页
爬虫我用过 python的 scrapy
Scrapy是适用于Python的一个快速、高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据。
这个可以吗?这个可以跳转到别的页面获取数据吗?我的这个是跳转到别的页面获取数据后返回原来的位置,而且我这个原来的位置是通过好几次的点击事件才出现的。我的情况是一个树形菜单,点击树形菜单,在选择点击子菜单出现数据在点击出现的数据跳到别的页面中,获取到了数据,在返回到数据中,继续进行爬取。
@宋人鱼:
没试过这个场景,总之,scrapy很强大
那就不跳转,新起一个线程爬虫去爬新页面
那我要爬取多次了,怎么判断我跳转的获取的数据和点击子菜单出现的表格中的数据是一致的?
@宋人鱼:
比如这里父页面A,里面有A1,A2,A3...N个页面的链接,在爬A时,就找到N条可跳转的记录,然后创建N个爬虫去爬这N个页面,然后A1里的爬虫又爬到了B1,B2,B3...M个页面,然后创建M个爬虫去爬这M个页面 就这么递归爬下去,如果里面存在重复的,可以用hash来跳过重复的链接
数据一致的问题,爬虫又不会给你伪造数据,爬了A1就是A1的数据
@复制粘贴机器人: 你这个我看不懂,而且我不知道关于线程相关知识,还有我这个是用C#爬取的数据,而且我现在用Xpath来爬取数据,不知道Xpath可不可以做到这种效果。
@宋人鱼: 用不用线程无所谓。做一个爬虫类,把每个爬虫看成一个对象,每次创建爬虫就是实例化爬虫类。
@复制粘贴机器人: 爬虫类是自己写还是有可以直接调用的爬虫类
IWebDriver driver = new OpenQA.Selenium.Chrome.ChromeDriver("E:\drive\chromedriver");
//跳转地址
driver.Navigate().GoToUrl("https://lssggzy.lishui.gov.cn/lsweb/jyxx/jyinfo.html");
跳转地址改为要跳转的地址可以吗?