最近用selenium写了一个小爬虫,需要循环在搜索框内输入内容,然后模拟点击搜索,在前进的新的页面获取数据,之后循环之前步骤,知道搜索结束。在爬虫刚开始运行的时候速度还可以,大约一秒一个页面,随着运行,速度开始越来越慢。
这里贴出代码:
browser = webdriver.Chrome(executable_path="D:\GeckoDriver\chromedriver") browser.get("https://www.qcc.com/") # #4.设置浏览器的大小 browser.maximize_window() login = browser.find_element_by_xpath('/html/body/header/div/ul/li[10]/a') login.click() # sleep(30) # print("30 seconds later") x = input("登录后请按y") cookies = browser.get_cookies() browser.quit() browser = webdriver.Chrome(executable_path="D:\GeckoDriver\chromedriver",options = chrome_options) # , options = chrome_options browser.get("https://www.qcc.com/") for cookie in cookies: browser.add_cookie(cookie) browser.get("https://www.qcc.com/") browser.maximize_window() qccinput = browser.find_element_by_css_selector("#searchkey") # qccinput.clear() qccinput.send_keys(companyNames[random.randint(0, len(companyNames))]) qccbutton = browser.find_element_by_css_selector(".index-searchbtn") sleep(0.5) qccbutton.click() qccbutton = browser.find_element_by_css_selector(".input-group-btn") sleep(0.5) qccbutton.click() pbar = tqdm(range(len(companyNames))) for companyName, i in zip(companyNames, pbar): browser.forward() # browser.delete_all_cookies() # browser.refresh(); lem = WebDriverWait(browser, 15, 0.5).until(EC.presence_of_element_located((By.ID, "searchKey"))) # 节约时间,网页出现这个元素再操作 seach = browser.find_element_by_css_selector("#searchKey") seach.clear() seach.send_keys(companyName) seachButton = browser.find_element_by_css_selector(".btn-primary") seachButton.click() response = browser.page_source html = etree.HTML(response) result = etree.tostring(html) cookies = browser.get_cookies() try: companyName = html.xpath( 'normalize-space(/html/body/div[1]/div[2]/div[2]/div[3]/div/div[2]/div/table/tr[1]/td[3]/div/a[1])') # 去掉tbody urls = html.xpath( '/html/body/div[1]/div[2]/div[2]/div[3]/div/div[2]/div/table/tr[1]/td[3]/div/a[1]/@href') # 去掉tbody getCompanyNames.append(companyName) getTaxpayerNumber(urls, cookies) except Exception as r: getCompanyNames.append("无法搜索到公司") taxpayerNumber.append("无法查到税号") # browser = webdriver.Chrome(profile) # send_command = ('POST', '/session/$sessionId/chromium/send_command') # browser.command_executor._commands['SEND_COMMAND'] = send_command # browser.execute('SEND_COMMAND', dict(cmd='Network.clearBrowserCache', params={})) browser.delete_all_cookies() for cookie in cookies: browser.add_cookie(cookie)
似乎Session也要用到Cookie来传递信息。
Session一般都保存在服务器内存里吗?如果把它存在文件或者数据库里,是不是性能开销也比直接使用Cookie大不少?
大量用户的Web站点,一般是用Session还是Cookie来做用户验证?
Appium如何定位移动应用程序中的元素?
Appium如何与移动设备通信?
使用禅道开源版有哪些潜在成本?
如题
ansible到底是一个什么样的存在?
禅道开源版、企业版和旗舰版之间的主要区别是什么?
求大神解释什么是冒烟测试,回归测试?
禅道软件适用于哪些类型的团队或企业?
近日据湖北经视报道,武汉市汉阳区万博雅苑小区的包先生反映,他有一个从河南寄来的中通快递,3月5日便到了站点,可目前已经3月11日了,却一直无人配送,并且小区很多居民的包裹都遇到了类似的情况。中通快递摩尔城站点工作人员称:“没人送,没有快递员,快递员都跑了,不愿意做了。”
在微博、黑猫投诉等平台上有不少网友反馈遭遇到了类似的情况,还有博主收到短信明确表示因为人力短缺无法及时派送。
自《快递市场管理办法》实施以来,出现了部分快递员辞职的现象。网友表示,不单只一家快递公司延迟配送。
所以,你受到影响了吗?欢迎评论区分享你的观点。
实施测试用例管理工具后,如何确保团队能有效使用?
为什么要进行自动化测试
青海西宁,李巍暨南大学法学毕业后,因为不擅长人际关系,20年来都在创业,没打过一天工。
创业失败后,他意外发掘科普“基因”,拍200个视频讲量子力学、生命科学等,因为语气特别催眠,获百万网友关注。
虽然40岁才发现自己的擅长,但李巍说,未来有足够的时间“努力做下去”。
你会因为“性格”因素,拒绝一些岗位或者工作吗?欢迎评论区分享你的观点。
测试用例管理工具的选型有哪些常见风险,如何避免?
系统功能测试的实践方法有哪些?
为什么需要测试用例管理工具?