selenium抓取动态网页数据
1.selenium抓取动态网页数据基础介绍
1.1 什么是AJAX
AJAX(Asynchronouse JavaScript And XML:异步JavaScript和XML)通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新,这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行局部更新。传统的网页(不使用Ajax)如果需要更新内容,必须重载整个网页页面。
因为传统的网页在传输数据格式方面,使用的是XML
语法,因此叫做AJAX
,其实现在数据交互基本上都是使用JSON
。使用AJAX加载的数据,即使使用了JS将数据渲染到了浏览器中,在右键->查看网页源代码
还是不能看到通过ajax加载的数据,只能看到使用这个url加载的html代码。
1.2 获取ajax数据的方式
法1:直接分析ajax调用的接口。然后通过代码请求这个接口。
法2:使用Selenium+chromedriver模拟浏览器行为获取数据。
方式 | 优点 | 缺点 |
---|---|---|
分析接口 | 直接可以请求到数据。不需要做一些解析工作。代码量少,性能高。 | 分析接口比较复杂,特别是一些通过js混淆的接口,要有一定的js功底。容易被发现是爬虫。 |
selenium | 直接模拟浏览器的行为。浏览器能请求到的,使用selenium也能请求到。爬虫更稳定。 | 代码量多。性能低。 |
1.3 Selenium+chromedriver获取动态数据
Selenium
相当于是一个机器人。可以模拟人类在浏览器上的一些行为,自动处理浏览器上的一些行为,比如点击,填充数据,删除cookie等。chromedriver
是一个驱动Chrome
浏览器的驱动程序,使用他才可以驱动浏览器。当然针对不同的浏览器有不同的driver。以下列出了不同浏览器及其对应的driver:
- Chrome:https://sites.google.com/a/chromium.org/chromedriver/downloads
- Firefox:https://github.com/mozilla/geckodriver/releases
- Edge:https://developer.microsoft.com/en-us/microsoft-edge/tools/webdriver/
- Safari:https://webkit.org/blog/6900/webdriver-support-in-safari-10/
1.4 安装Selenium和chromedriver
- 安装
Selenium
:Selenium
有很多语言的版本,有java、ruby、python等。我们下载python版本的就可以了。pip install selenium
- 安装
chromedriver
:下载完成后,放到不需要权限的纯英文目录下就可以了。
1.5 快速入门
现在以一个简单的获取百度首页的例子来讲下Selenium
和chromedriver
如何快速入门:
from selenium import webdriver# chromedriver的绝对路径 driver_path = r'D:\ProgramApp\chromedriver\chromedriver.exe'# 初始化一个driver,并且指定chromedriver的路径 driver = webdriver.Chrome(executable_path=driver_path) # 请求网页 driver.get("https://www.baidu.com/") # 通过page_source获取网页源代码 print(driver.page_source)
1.6 selenium常用操作
#-*-coding = utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # chromedriver的绝对路径 driver_path = r'D:\ProgramApp\chromedriver\chromedriver.exe' # 初始化一个driver,并且指定chromedriver的路径 driver = webdriver.Chrome(executable_path=driver_path) # 请求网页 driver.get("https://www.baidu.com/") # 通过page_source获取网页源代码 print(driver.page_source)selenium常用操作1.关闭页面: driver.close():关闭当前页面。 driver.quit():退出整个浏览器。2.定位元素: a)find_element_by_id:根据id来查找某个元素。等价于:submitTag = driver.find_element_by_id('su')submitTag1 = driver.find_element(By.ID,'su') b)find_element_by_class_name:根据类名查找元素。 等价于:submitTag = driver.find_element_by_class_name('su')submitTag1 = driver.find_element(By.CLASS_NAME,'su') c)find_element_by_name:根据name属性的值来查找元素。等价于:submitTag = driver.find_element_by_name('email')submitTag1 = driver.find_element(By.NAME,'email') d)find_element_by_tag_name:根据标签名来查找元素。等价于:submitTag = driver.find_element_by_tag_name('div')submitTag1 = driver.find_element(By.TAG_NAME,'div') e)find_element_by_xpath:根据xpath语法来获取元素。等价于:submitTag = driver.find_element_by_xpath('//div')submitTag1 = driver.find_element(By.XPATH,'//div') f)find_element_by_css_selector:根据css选择器选择元素。等价于:submitTag = driver.find_element_by_css_selector('//div')submitTag1 = driver.find_element(By.CSS_SELECTOR,'//div') 要注意,find_element是获取第一个满足条件的元素。find_elements是获取所有满足条件的元素。3.操作表单元素: a)操作输入框:分为两步。第一步:找到这个元素。第二步:使用send_keys(value),将数据填充进去。示例代码如下:inputTag = driver.find_element_by_id('kw')inputTag.send_keys('python') 使用clear方法可以清除输入框中的内容。示例代码如下:inputTag.clear() b)操作checkbox:因为要选中checkbox标签,在网页中是通过鼠标点击的。因此想要选中checkbox标签,那么先选中这个标签,然后执行click事件。示例代码如下:rememberTag = driver.find_element_by_name("rememberMe")rememberTag.click() c)选择select:select元素不能直接点击。因为点击后还需要选中元素。这时候selenium就专门为select标签提供了一个类selenium.webdriver.support.ui.Select。将获取到的元素当成参数传到这个类中,创建这个对象。以后就可以使用这个对象进行选择了。示例代码如下:from selenium.webdriver.support.ui import Select# 选中这个标签,然后使用Select创建对象selectTag = Select(driver.find_element_by_name("jumpMenu"))# 根据索引选择selectTag.select_by_index(1)# 根据值选择selectTag.select_by_value("http://www.95yueba.com")# 根据可视的文本选择selectTag.select_by_visible_text("95秀客户端")# 取消选中所有选项 selectTag.deselect_all()d)操作按钮:操作按钮有很多种方式。比如单击、右击、双击等。这里讲一个最常用的。就是点击。直接调用click函数就可以了。示例代码如下:inputTag = driver.find_element_by_id('su')inputTag.click()4.行为链: 有时候在页面中的操作可能要有很多步,那么这时候可以使用鼠标行为链类ActionChains来完成。比如现在要将鼠标移动到某个元素上并执行点击事件。那么示例代码如下:inputTag = driver.find_element_by_id('kw') submitTag = driver.find_element_by_id('su')actions = ActionChains(driver) actions.move_to_element(inputTag) actions.send_keys_to_element(inputTag,'python') actions.move_to_element(submitTag) actions.click(submitTag) actions.perform()还有更多的鼠标相关的操作: click_and_hold(element):点击但不松开鼠标。 context_click(element):右键点击。 double_click(element):双击。 更多方法请参考:http://selenium-python.readthedocs.io/api.html
#-*-coding = utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By # chromedriver的绝对路径 driver_path = r'E:\study\chromedriver\chromedriver.exe' # 初始化一个driver,并且指定chromedriver的路径 driver = webdriver.Chrome(executable_path=driver_path) # 请求网页 driver.get("https://www.baidu.com/") # 通过page_source获取网页源代码 print(driver.page_source) # 5.Cookie操作: # a)获取所有的cookie: for cookie in driver.get_cookies():print(cookie) # b)根据cookie的key获取value: #value = driver.get_cookie(key) print(driver.get_cookie('PSTM')) # c)删除所有的cookie: driver.delete_all_cookies() # d)删除某个cookie: #driver.delete_cookie(key)# 6页面等待: # 现在的网页越来越多采用了 Ajax 技术,这样程序便不能确定何时某个元素完全加载出来了。如果实际页面等待时间过长导致某个dom元素还没出来,但是你的代码直接使用了这个WebElement,那么就会抛出NullPointer的异常。为了解决这个问题。所以 Selenium 提供了两种等待方式:一种是隐式等待、一种是显式等待。# a)隐式等待:调用driver.implicitly_wait。那么在获取不可用的元素之前,会先等待10秒中的时间。示例代码如下: driver = webdriver.Chrome(executable_path=driver_path) driver.implicitly_wait(10) # 请求网页 driver.get("https://www.douban.com/")# b)显示等待:显示等待是表明某个条件成立后才执行获取元素的操作。也可以在等待的时候指定一个最大的时间,如果超过这个时间那么就抛出一个异常。显示等待应该使用selenium.webdriver.support.excepted_conditions期望的条件和selenium.webdriver.support.ui.WebDriverWait来配合完成。示例代码如下:from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Firefox() driver.get("http://somedomain/url_that_delays_loading") try:element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "myDynamicElement")) ) finally:driver.quit() # 一些其他的等待条件: # presence_of_element_located:某个元素已经加载完毕了。 # presence_of_all_emement_located:网页中所有满足条件的元素都加载完毕了。 # element_to_be_cliable:某个元素是可以点击了。 # 更多条件请参考:http://selenium-python.readthedocs.io/waits.html
7.页面切换 有时候窗口中有很多子tab页面。这时候肯定是需要进行切换的。selenium提供了一个叫做switch_to_window来进行切换,具体切换到哪个页面,可以从driver.window_handles中找到。示例代码如下:# 打开一个新的页面 driver.execute_script("window.open('https://www.douban.com/')") print(driver.window_handles) # 切换到这个新的页面中 driver.switch_to_window(self.driver.window_handles[1]) print(driver.current_url) #注意 #虽然在浏览器窗口中切换到了新的页面,但是driver中还没有切换 #如果想要在代码中切换到新的界面,那么应该使用driver.switch_to_window来切换到指定的窗口 #从driver.window_handles中取出具体第几个窗口 #driver.window_handles是一个列表,里面装的都是窗口句柄,它会按照打开的页面顺序来存储窗口的句柄。8.设置代理ip 有时候频繁爬取一些网页。服务器发现你是爬虫后会封掉你的ip地址。这时候我们可以更改代理ip。更改代理ip,不同的浏览器有不同的实现方式。这里以Chrome浏览器为例来讲解:from selenium import webdriveroptions = webdriver.ChromeOptions() options.add_argument("--proxy-server=http://110.73.2.248:8123") driver_path = r"D:\ProgramApp\chromedriver\chromedriver.exe" driver = webdriver.Chrome(executable_path=driver_path,chrome_options=options)driver.get('http://httpbin.org/ip')9. WebElement元素 from selenium.webdriver.remote.webelement import WebElement类是每个获取出来的元素的所属类。 有一些常用的属性:get_attribute:这个标签的某个属性的值。 screentshot:获取当前页面的截图。这个方法只能在driver上使用。 driver的对象类,也是继承自WebElement。
1.7 爬取拉钩网职位信息
import requests from lxml import etree import time import reheaders = {"Accept":"application/json, text/javascript, */*; q=0.01","Accept-Encoding":"gzip, deflate, br","Accept-Language":"zh-CN,zh;q=0.9","Connection":"keep-alive","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36","Referer":"https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput=","Origin":"https://www.lagou.com","Host":"www.lagou.com","Content-Type":"application/x-www-form-urlencoded; charset=UTF-8","Cookie":"_ga=GA1.2.1602115737.1553064534; user_trace_token=20190320144853-39b1375a-4adc-11e9-a253-525400f775ce; LGUID=20190320144853-39b13f88-4adc-11e9-a253-525400f775ce; WEBTJ-ID=20190408120043-169fb1afd63488-06179b118ca307-7a1437-2073600-169fb1afd648ed; _gid=GA1.2.1826141825.1554696044; sensorsdata2015jssdkcross=%7B%22distinct_id%22%3A%22169fb1bb2c41ea-04951e55adc96a-7a1437-2073600-169fb1bb2c58d0%22%2C%22%24device_id%22%3A%22169fb1bb2c41ea-04951e55adc96a-7a1437-2073600-169fb1bb2c58d0%22%7D; sajssdk_2015_cross_new_user=1; _putrc=4C5D2603888320CA; JSESSIONID=ABAAABAAADEAAFIB00F5DDE71D51610901CB9E0031812BA; login=true; unick=%E4%BC%8D%E6%99%93%E4%B8%BD; showExpriedIndex=1; showExpriedCompanyHome=1; showExpriedMyPublish=1; hasDeliver=49; gate_login_token=7b04a40da89145a1fbc90a3d719616d28c8b0a303344ac37; index_location_city=%E6%88%90%E9%83%BD; X_MIDDLE_TOKEN=1221e6b5040722dc86f5ceb557e11965; _gat=1; LGSID=20190408151935-a9976fbf-59ce-11e9-8cc8-5254005c3644; PRE_UTM=m_cf_cpc_baidu_pc; PRE_HOST=www.baidu.com; PRE_SITE=https%3A%2F%2Fwww.baidu.com%2Fbaidu.php%3Fsc.Ks000001qLT2daZnZWIez3ktR_jhHue3tONZubxU9mivhxeuj-Fxrjg6NnVcKTp-GYJ_YRvrc9_yOJ4uV-IEpfnPazPz7ctjve1qlDokCDfHYo9PV0uDfTmN1OunNUcCRU-sJuR8RZz60PAXzfKybAdvuCxUedbt8aWtTjAdCCuO298TwT8zN1-T5EG3kgkOweg0DHGIbvP55IZbr6.DY_NR2Ar5Od663rj6tJQrGvKD7ZZKNfYYmcgpIQC8xxKfYt_U_DY2yP5Qjo4mTT5QX1BsT8rZoG4XL6mEukmryZZjzsLTJplePXO-8zNqrw5Q9tSMj_qTr1x9tqvZul3xg1sSxW9qx-9LdoDkY4QPSl81_4pqO24rM-8dQjPakb3dS5iC0.U1Yk0ZDqs2v4VnL30ZKGm1Yk0Zfqs2v4VnL30A-V5HcsP0KM5gK1n6KdpHdBmy-bIykV0ZKGujYzr0KWpyfqnWcv0AdY5HDsnHIxnH0krNtknjc1g1nsnHNxn1msnfKopHYs0ZFY5HDLn6K-pyfq0AFG5HcsP0KVm1Y3nHDYP1fsrjuxnH0snNtkg1Dsn-ts0Z7spyfqn0Kkmv-b5H00ThIYmyTqn0K9mWYsg100ugFM5H00TZ0qPWm1PHm1rj640A4vTjYsQW0snj0snj0s0AdYTjYs0AwbUL0qn0KzpWYs0Aw-IWdsmsKhIjYs0ZKC5H00ULnqn0KBI1Ykn0K8IjYs0ZPl5fK9TdqGuAnqTZnVUhC0IZN15Hnkn1fknHT4P1DvPHR1PW61P100ThNkIjYkPHRYP10LrHTkPjTY0ZPGujd9rAwBmhuWrj0snjDzrj0Y0AP1UHYsPbm3wWTsrH0srjwarDcz0A7W5HD0TA3qn0KkUgfqn0KkUgnqn0KlIjYs0AdWgvuzUvYqn7tsg1Kxn7ts0Aw9UMNBuNqsUA78pyw15HKxn7tsg1nkrjm4nNts0ZK9I7qhUA7M5H00uAPGujYknjT1P1fkrjcY0ANYpyfqQHD0mgPsmvnqn0KdTA-8mvnqn0KkUymqn0KhmLNY5H00uMGC5H00uh7Y5H00XMK_Ignqn0K9uAu_myTqnfK_uhnqn0KEIjYs0AqzTZfqnanscznsc100mLFW5HRdPj0Y%26word%3D%25E6%258B%2589%25E5%258B%25BE%25E7%25BD%2591%26ck%3D1701.10.72.227.558.354.602.254%26shh%3Dwww.baidu.com%26sht%3D62095104_19_oem_dg%26us%3D1.0.1.0.1.301.0%26bc%3D110101; PRE_LAND=https%3A%2F%2Fwww.lagou.com%2Flp%2Fhtml%2Fcommon.html%3Futm_source%3Dm_cf_cpc_baidu_pc%26m_kw%3Dbaidu_cpc_cd_e110f9_d2162e_%25E6%258B%2589%25E5%258B%25BE%25E7%25BD%2591; Hm_lvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1553064535,1554696044,1554707975; TG-TRACK-CODE=index_search; SEARCH_ID=16b25888bc6f489f981996ef505d6930; X_HTTP_TOKEN=3704e5535eab672a10080745514b2c7fac0430c282; Hm_lpvt_4233e74dff0ae5bd0a3d81c6ccf756e6=1554708001; LGRID=20190408152002-b9743b5b-59ce-11e9-9a84-525400f775ce","X-Anit-Forge-Code":"0" ,"X-Anit-Forge-Token":'',"X-Requested-With":'XMLHttpRequest' }def get_detail_page_url():datas =[]url = 'https://www.lagou.com/jobs/positionAjax.json'form_data = {"first":"faise","pn":1,"kd":"python"}params = {'city':'成都','needAddtionalResult':'false'}for pn in range(1,14):form_data['pn'] = pnresponse = requests.request(method='post',url=url,headers=headers,params = params,data = form_data)result = response.json()result_list = result['content']['positionResult']['result']for position in result_list:position_id = position['positionId']detail_url = 'https://www.lagou.com/jobs/%s.html'%position_iddata = parse_detail_page(detail_url)datas.append(data)time.sleep(2)return datasdef parse_detail_page(url):resonse = requests.request(method='get',url=url,headers = headers)text = resonse.texthtml = etree.fromstring(text,parser=etree.HTMLParser())position_name = html.xpath('//span[@class="name"]/text()')[0].strip()detail_list = html.xpath('//dd[@class="job_request"]//span')salary = detail_list[0].xpath('text()')[0].strip()city = detail_list[1].xpath('text()')[0].strip()city = re.sub(r'[\s/]','',city)work_years = detail_list[2].xpath('text()')[0].strip()work_years = re.sub(r'[\s/]','',work_years)education = detail_list[3].xpath('text()')[0].strip()education = re.sub(r'[\s/]','',education)job_details = ''.join(html.xpath('//div[@class="job-detail"]//p//text()'))data = {"position_name":position_name,"salay":salary,"city":city,"work_years":work_years,"education":education,"job_details":job_details}return datadef main():datas = get_detail_page_url()print(datas)if __name__ == '__main__':main()
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import Byfrom lxml import etree import re import timeclass Lagouspider(object):driver_path = r'E:\study\chromedriver\chromedriver.exe'def __init__(self):self.driver = webdriver.Chrome(executable_path=Lagouspider.driver_path)self.url = 'https://www.lagou.com/jobs/list_python?labelWords=&fromSearch=true&suginput='self.positions = []def run(self):while True:self.driver.get(self.url)source = self.driver.page_sourceWebDriverWait(driver=self.driver,timeout=10).until(EC.presence_of_element_located((By.XPATH,'//div[@class="pager_container"]/span[last()]')))self.parse_list_page(source)next_btn = self.driver.find_element_by_xpath('//div[@class="pager_container"]/span[last()]')if "pager_next_disabled" in next_btn.get_attribute('class'):breakelse:next_btn.click()time.sleep(1)def parse_list_page(self,source):html = etree.HTML(source)links = html.xpath('//a[@class="position_link"]/@href')for link in links:self.request_detail_page(link)time.sleep(1)def request_detail_page(self,url):self.driver.execute_script("window.open('%s')"%url)self.driver.switch_to.window(self.driver.window_handles[1])WebDriverWait(self.driver,timeout=10).until(EC.presence_of_element_located((By.XPATH,'//span[@class="name"]')))source = self.driver.page_sourceself.parse_detail_page(source)#关闭当前详情页 self.driver.close()#切换回职位列表页 self.driver.switch_to.window(self.driver.window_handles[0])def parse_detail_page(self,source):html = etree.HTML(source)position_name = html.xpath('//span[@class="name"]/text()')[0].strip()detail_list = html.xpath('//dd[@class="job_request"]//span')salary = detail_list[0].xpath('text()')[0].strip()city = detail_list[1].xpath('text()')[0].strip()city = re.sub(r'[\s/]', '', city)work_years = detail_list[2].xpath('text()')[0].strip()work_years = re.sub(r'[\s/]', '', work_years)education = detail_list[3].xpath('text()')[0].strip()education = re.sub(r'[\s/]', '', education)desc = ''.join(html.xpath('//dd[@class="job_bt"]//text()')).strip()data = {"name": position_name,"salay": salary,"city": city,"work_years": work_years,"education": education,"desc": desc}print(data)print('+'*40)self.positions.append(data)if __name__ == '__main__':spider = Lagouspider()spider.run()
>>>>>>>待续
转载于:https://www.cnblogs.com/wuxunyan/p/10655016.html
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
相关文章
- Tsql生成序列、日期序列
--方法1 SET NOCOUNT ON USE tempdb GO IF OBJECT_ID(dbo.nums)IS NOT NULL DROP TABLE dbo.nums; GO CREATE TABLE dbo.nums(n INT NOT NULL PRIMARY KEY); DECLARE @max AS INT,@rc AS INT SET @max=1000000 SET @rc=1 INSERT INTO nums VALUES (1); WHILE @rc*2<=@max BE…...
2024/4/21 9:49:50 - 001、在本地搭建SAP虚拟机环境,用于各种暴力操作
一、在某网盘下载一个SAP虚拟机,用于SAP学习和相关的测试。打开图中的服务器,点击运行,等灯都变成绿色二、点击打开熟悉的SAP登录图标三、很完美的运行起来了。友情提示:SAP对电脑配置要求挺高的,推荐128G内存来运行SAP转载于:https://www.cnblogs.com/tianpan2019/p/1145…...
2024/4/26 16:51:42 - 02.SQLServer性能优化之---水平分库扩展
汇总篇:http://www.cnblogs.com/dunitian/p/4822808.html#tsql 第一次引入文件组的概念:http://www.cnblogs.com/dunitian/p/5276431.html 上次说了其他的解决方案(http://www.cnblogs.com/dunitian/p/6041745.html),就是没有说水平分库,这次好好说下。上次共享的第一份大…...
2024/4/21 9:49:48 - SAP 升级和增强包
SAP ECC upgrade.JPGSAP ECC Component.JPGSAP ECC EHP.JPGSAP ECC EHP -2.JPGSAP Business Suite 7.JPGSAP EHP Roadmap for Business Suite 7.JPGSAP ECC 60 EHP5.JPGsap support Mantain Strategy.JPG来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/65240/viewspace-6…...
2024/5/6 18:48:22 - SQL Server 2005新功能 - TSQL
SQL Server 2005相对于SQL Server 2000改进很大,有些还是非常实用的。 举几个例子来简单说明 这些例子我引用了Northwind库。 1. TOP 表达式 SQL Server 2000的TOP是个固定值,是不是觉得不爽,现在改进了。 --前n名的订单declare @n int set @n = 10 select TOP(@n) * from …...
2024/5/7 9:31:09 - SAP 金税接口介绍
一、金税发票与SAP系统发票的税额差异分析1.1 金税系统中的税额说明国内企业销售产品给国内客户时,正常产品需要缴纳17%的增值税,而金税(Golden Tax)系统就是用来出具纸面的增值税发票的。 在金税系统中,金税发票的开具有二种方式。 方法1:不通过接口手工出具 不通过接口手…...
2024/5/5 16:03:21 - SAP云推出虚拟机托管服务 名字里不再含HANA
大家在在考虑选择云托管虚拟机公司时SAP的排位可能不会太高,不过SAP日前在提供云服务上加大了力度。 SAP倒不是想成为通用的云计算平台。SAP的云平台最近更名,成为旗下托管虚拟机产品的一部分。SAP的云平台以前名为SAP HANA云平台。SAP将其改名,因为产品与HANA无关:产品与I…...
2024/4/26 14:20:45 - 如何安装SAP JCo3
本文以SAP JCo_3.04为例,阐述如何安装SAP JCO。JCo有32位和64为之分,那么我们将如何选择JCo的位数呢?很简单,32位的JVM选择32位的JCO,64位的JVM选择64位的JCO, 在windows环境,选择相应的sapjco3.dll, Unix和Linux环境选择合适的sapjco3.so 。下边是关于如何选择JCO的简介:…...
2024/4/24 8:28:14 - SAP PA 共享 免费下载
为了感谢朋友的光临和sap的学习交流, 我上传了部分SAP资料,供免费下载, 仅供学习交流,不做任何商业用途, 如果损害了任何人的利益可以直接给我留言, 我将根据反应的情况进行合理的处理,谢谢! 地址:http://yunpan.cn/Qp48r7Y7hKZ8R 其他尚未上传的资料,将陆续添加,转…...
2024/5/6 6:36:03 - T-SQL之多条件查询
使用TSQL写多条件的查询存储过程 如果查询条件为空值的时候,即没有传递进来值, 即可使用ISNULL函数进行判断然后缺省处理。 以下为示例代码,访问的是北风数据库employee表。 DECLARE @ename VARCHAR(20) DECLARE @Birth DATETIME SET @ename =NULL SET @Bi…...
2024/5/7 3:27:36 - 使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中。JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对和数组两种复杂数据类型,JSON仅仅使用逗号(引用Key)和中括号(引用数组元素),就能路由到指定的属…...
2024/5/7 23:50:29 - SAP NOTES
SAP R/3 接口技术剖析2006-09-20作为目前ERP市场上最为领先的应用系统之一,一直以来,SAP R/3在提供API应用编程接口和接口工具方面也同样领先于其它ERP厂商。ALE/IDocs是SAP公司为SAP R/3 R4.6C版本所提供的接口机制,目前应用最为广泛。在 R4.0以后的版本中,又添加了技术上…...
2024/5/6 21:33:40 - 如何去完成一个SAP notes的实现
本文主要介绍如何去看SAP notes,以及如何去实现SAP notes,有那些注意事项:1、查看SAP notes:首先你登陆SAP,然后通过下面这个菜单进入SAP Servers market,或者直接输入service.sap.com 即可:进入之后,点击下面这个:当你点击了这个的时候,应该要你登陆的(通常你们公…...
2024/4/30 16:21:40 - 吴秦 如何从单行提取成多行(TSQL)?
http://www.cnblogs.com/skynet/archive/2010/05/05/1728423.html...
2024/4/30 10:15:49 - SAP ADM100 学习笔记
SAP系统和SAP instance:一个SAP系统通常包括了一个相应的数据库系统,一个或者多个SAP instances。这是通常的说法。举个例子,我们说的开发系统,测试系统,生产系统,往往都是说的一个SAP系统。这个系统自然都包括了各自的数据库系统以及SAP实例。 而数据库系统,包括了数据库…...
2024/5/4 20:02:17 - SAP JCo3安装在LINUX系统
操作系统:LINUX 处理器64位 JDK:1.5 SAP JCo:sapjco3-linuxintel-3.0.5.tgz安装步骤: 1、 将libsapjco3.so复制到JDK目录安装目录路径:/usr/java/jdk1.5.0_22/jre/lib/i386/server; 2、 复制sapjco3.jar到/usr/java/jdk1.5.0_22/lib/sapjco3.jar; 3、 把目录/usr/jav…...
2024/5/6 1:40:47 - T-SQL 查询返回每个月的最后一天生成的订单
T-SQL 查询返回每个月的最后一天生成的订单use tsql2012select orderid, orderdate, custid, empidfrom sales.orderswhere month(dateadd(day, 1, orderdate))<> month(orderdate)...
2024/5/4 13:52:21 - SAP 系统性能分析 Tcode
原文转载 http://blog.chinaunix.net/uid-20607558-id-1916144.html 感谢原作者的总结及归纳. /nSMLTlanguage managementoverview sap support language ==for manage databasehttp://help.sap.com/saphelp_47x200/helpdata/en/d0/1057cd20d96a43bde5d59291e8290f/frameset.h…...
2024/4/21 9:49:39 - python爬虫定时抓取数据
python爬虫定时抓取数据 from scrapy import cmdline import datetime import time def doSth(): # 把爬虫程序放在这个类中 shi 是爬虫的name cmdline.execute(‘scrapy crawl shi’.split()) def time_ti(h=16,m=28): while True: now = datetime.datetime.now() print(now.h…...
2024/4/21 9:49:37 - 手工创建请求对象并传入至任意SAP系统
CG3Y: 下载系统文件CG3Z: 上传文件至系统目录一、请求文件存放在以下两个目录/usr/sap/trans/cofiles/usr/sap/trans/data二、将源系统中这些文件拷贝至目标系统对应的目录中,注意权限的修改三、登录对应的系统,使用stms,点菜单添加请求在弹出来的对应框中选择对应的请求号添…...
2024/5/4 20:59:16
最新文章
- 操作系统真象还原-第2章 编写MBR主引导记录,开始掌权
第2章 编写MBR主引导记录,开始掌权 2.1 计算机启动过程 2.2 第一棒,BIOS 2.2.1 实模式下1MB内存布局 2.2.2 BIOS 何时苏醒 2.2.3 0x7c00 校验启动盘中位于0盘0道1扇区 512 bytes, mbr storage 扇区编号从1开始。 0x55 0xaa 结尾 2.3 让MBR先飞一会儿 2…...
2024/5/8 18:42:47 - 梯度消失和梯度爆炸的一些处理方法
在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言,在此感激不尽。 权重和梯度的更新公式如下: w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...
2024/5/7 10:36:02 - k8s_入门_kubelet安装
安装 在大致了解了一些k8s的基本概念之后,我们实际部署一个k8s集群,做进一步的了解 1. 裸机安装 采用三台机器,一台机器为Master(控制面板组件)两台机器为Node(工作节点) 机器的准备有两种方式…...
2024/5/4 14:33:56 - Python语法总结:not(常出现错误)
0、not是什么 在python中not是逻辑判断词,用于布尔型True和False之前 a not Ture # a False b not False # b True1、not的用法 (1)判断语句 if not a:# 如果a是False,执行的语句(2)判断元素是否在…...
2024/5/7 15:29:37 - 【外汇早评】美通胀数据走低,美元调整
原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...
2024/5/8 6:01:22 - 【原油贵金属周评】原油多头拥挤,价格调整
原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...
2024/5/7 9:45:25 - 【外汇周评】靓丽非农不及疲软通胀影响
原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...
2024/5/4 23:54:56 - 【原油贵金属早评】库存继续增加,油价收跌
原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...
2024/5/7 14:25:14 - 【外汇早评】日本央行会议纪要不改日元强势
原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...
2024/5/4 23:54:56 - 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响
原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...
2024/5/4 23:55:05 - 【外汇早评】美欲与伊朗重谈协议
原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...
2024/5/4 23:54:56 - 【原油贵金属早评】波动率飙升,市场情绪动荡
原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...
2024/5/7 11:36:39 - 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试
原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...
2024/5/4 23:54:56 - 【原油贵金属早评】市场情绪继续恶化,黄金上破
原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...
2024/5/6 1:40:42 - 【外汇早评】美伊僵持,风险情绪继续升温
原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...
2024/5/4 23:54:56 - 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势
原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...
2024/5/4 23:55:17 - 氧生福地 玩美北湖(上)——为时光守候两千年
原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...
2024/5/7 9:26:26 - 氧生福地 玩美北湖(中)——永春梯田里的美与鲜
原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...
2024/5/4 23:54:56 - 氧生福地 玩美北湖(下)——奔跑吧骚年!
原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...
2024/5/4 23:55:06 - 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!
原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...
2024/5/5 8:13:33 - 「发现」铁皮石斛仙草之神奇功效用于医用面膜
原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...
2024/5/4 23:55:16 - 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者
原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...
2024/5/4 23:54:58 - 广州械字号面膜生产厂家OEM/ODM4项须知!
原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...
2024/5/6 21:42:42 - 械字号医用眼膜缓解用眼过度到底有无作用?
原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...
2024/5/4 23:54:56 - 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...
解析如下:1、长按电脑电源键直至关机,然后再按一次电源健重启电脑,按F8健进入安全模式2、安全模式下进入Windows系统桌面后,按住“winR”打开运行窗口,输入“services.msc”打开服务设置3、在服务界面,选中…...
2022/11/19 21:17:18 - 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。
%读入6幅图像(每一幅图像的大小是564*564) f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...
2022/11/19 21:17:16 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...
win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面,在等待界面中我们需要等待操作结束才能关机,虽然这比较麻烦,但是对系统进行配置和升级…...
2022/11/19 21:17:15 - 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...
有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows,请勿关闭计算机”的提示,要过很久才能进入系统,有的用户甚至几个小时也无法进入,下面就教大家这个问题的解决方法。第一种方法:我们首先在左下角的“开始…...
2022/11/19 21:17:14 - win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...
置信有很多用户都跟小编一样遇到过这样的问题,电脑时发现开机屏幕显现“正在配置Windows Update,请勿关机”(如下图所示),而且还需求等大约5分钟才干进入系统。这是怎样回事呢?一切都是正常操作的,为什么开时机呈现“正…...
2022/11/19 21:17:13 - 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...
Win7系统开机启动时总是出现“配置Windows请勿关机”的提示,没过几秒后电脑自动重启,每次开机都这样无法进入系统,此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一:开机按下F8,在出现的Windows高级启动选…...
2022/11/19 21:17:12 - 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...
有不少windows10系统用户反映说碰到这样一个情况,就是电脑提示正在准备windows请勿关闭计算机,碰到这样的问题该怎么解决呢,现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法:1、2、依次…...
2022/11/19 21:17:11 - 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...
今天和大家分享一下win7系统重装了Win7旗舰版系统后,每次关机的时候桌面上都会显示一个“配置Windows Update的界面,提示请勿关闭计算机”,每次停留好几分钟才能正常关机,导致什么情况引起的呢?出现配置Windows Update…...
2022/11/19 21:17:10 - 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...
只能是等着,别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚,只能是考虑备份数据后重装系统了。解决来方案一:管理员运行cmd:net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...
2022/11/19 21:17:09 - 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?
原标题:电脑提示“配置Windows Update请勿关闭计算机”怎么办?win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢?一般的方…...
2022/11/19 21:17:08 - 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...
关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!关机提示 windows7 正在配…...
2022/11/19 21:17:05 - 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...
钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...
2022/11/19 21:17:05 - 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...
前几天班里有位学生电脑(windows 7系统)出问题了,具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面,长时间没反应,无法进入系统。这个问题原来帮其他同学也解决过,网上搜了不少资料&#x…...
2022/11/19 21:17:04 - 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...
本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法,并在最后教给你1种保护系统安全的好方法,一起来看看!电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中,添加了1个新功能在“磁…...
2022/11/19 21:17:03 - 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...
许多用户在长期不使用电脑的时候,开启电脑发现电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机。。.这要怎么办呢?下面小编就带着大家一起看看吧!如果能够正常进入系统,建议您暂时移…...
2022/11/19 21:17:02 - 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...
配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!配置windows update失败 还原更改 请勿关闭计算机&#x…...
2022/11/19 21:17:01 - 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...
不知道大家有没有遇到过这样的一个问题,就是我们的win7系统在关机的时候,总是喜欢显示“准备配置windows,请勿关机”这样的一个页面,没有什么大碍,但是如果一直等着的话就要两个小时甚至更久都关不了机,非常…...
2022/11/19 21:17:00 - 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...
当电脑出现正在准备配置windows请勿关闭计算机时,一般是您正对windows进行升级,但是这个要是长时间没有反应,我们不能再傻等下去了。可能是电脑出了别的问题了,来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...
2022/11/19 21:16:59 - 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...
我们使用电脑的过程中有时会遇到这种情况,当我们打开电脑之后,发现一直停留在一个界面:“配置Windows Update失败,还原更改请勿关闭计算机”,等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢࿰…...
2022/11/19 21:16:58 - 如何在iPhone上关闭“请勿打扰”
Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...
2022/11/19 21:16:57