كيفية جمع المعلومات من كونتور

مرحبا بالجميع.

أنا منخرط في أتمتة المشاركة في المناقصات الحكومية .

هذه القصة حدثت بسبب المدخرات. عند شراء حساب مدفوع Kontur ، لم ننتبه لمدى فائدة تعريفة الخبير.

آه ، إذا لاحظنا ذلك ، فلن أضطر إلى تعلم السلينيوم وأساسيات جافا.

بمجرد ظهور تحدي تسويقي - لجمع جهات اتصال للمشترين في الشركات حول موضوعنا.

أنا أبحث عن جميع المسابقات التي تطابق الكلمات الرئيسية وفي المناطق الصحيحة. لجميع السنوات الماضية ، مكتملة ومستمرة.

في التفريغ في التعريفة القياسية ، البيانات التالية:



لا يوجد سوى اسم الشركة. لا توجد معلومات اتصال للمشتري.

الآن ، من أجل عدم جمع تفاصيل الاتصال الخاصة بالمشتري يدويًا ، قررت كتابة برنامج نصي.

نظرًا لأن Kontur.Purchase يحتوي على الصفحة بأكملها محملة بجافا سكريبت ، فلن تفلت من تحليل بسيط. يجب عليك كتابة السيناريو في السيلينيوم.

أولاً ، قم بإعداد البيانات الأولية - احفظ رقم المنافسة في CSV (وهو أيضًا معلمة في عنوان URL) ، وكذلك اسم الشركة ، حتى لا يتم تحليلها. كل هذا في ملف kontur_getContacts_src.csv



بعد ذلك ، سيناريو جافا مع التعليقات

import org.openqa.selenium.By; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.*; import org.openqa.selenium.firefox.*; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.support.ui.Select; import org.openqa.selenium.support.ui.ExpectedCondition; import org.openqa.selenium.support.ui.WebDriverWait; import org.openqa.selenium.remote.DesiredCapabilities; import org.openqa.selenium.remote.RemoteWebDriver; import java.util.List; import java.util.concurrent.TimeUnit; import java.io.*; import java.nio.file.*; public class kontur_getContacts{ public static void main(String args[]) throws Exception{ //   FireFox System.setProperty("webdriver.gecko.driver", "geckodriver.exe"); FirefoxDriver driver = new FirefoxDriver();// Create a Firefox browser instance driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); //   . driver.get("https://auth.kontur.ru/login.aspx?authmode=certlogin&back=https%3A%2F%2Fzakupki.kontur.ru%2FLogin%2FCallback%3FReturnUrl%3Dhttps%253A%252F%252Fzakupki.kontur.ru%252F%253Fevent-login%253D1&customize=zakupki"); //   Thread.sleep(2*1000); WebElement login_field = driver.findElement(By.cssSelector(".loginPassword__login input")); //    login_field.sendKeys("sales@mycomp.ru");//    WebElement pass_field = driver.findElement(By.cssSelector("input.input__realInput")); //   pass_field.sendKeys("password");//    Thread.sleep(1*1000); // driver.findElement(By.cssSelector("input.button__input")).click(); //      Thread.sleep(1*1000); // driver.findElement(By.cssSelector(".loginPassword__submit .button__input")).click(); //  Thread.sleep(2*1000); // String sourceFilePath = "C:/Users/user/selenium/kontur_getContacts_src.csv";//,     String resultFilePath = "C:/Users/user/selenium/kontur_getContacts_result.csv";//,    String delimeter = ";"; //       //  String name; String text; Integer flag_hasName=0; Integer flag_oneVar=0; try{ //    FileInputStream fstream = new FileInputStream(sourceFilePath); BufferedReader br = new BufferedReader(new InputStreamReader(fstream)); String strLine;//  String[] subStr;//  //   byte[] myBytes = "".getBytes(); Files.write(Paths.get(resultFilePath), myBytes); while ((strLine = br.readLine()) != null){ //      System.out.println(strLine); //     //     subStr = strLine.split(delimeter); System.out.println("Found order_id "+subStr[0]+" and Organization is "+subStr[1]); //     driver.get("https://zakupki.kontur.ru/"+subStr[0]); /*       */ name =""; // ,      text =""; // ,       List<WebElement> tenderField_data_in=driver.findElements(By.cssSelector(".popup__mainContacts .tenderField__s div.tenderField_data_in")); //   if(tenderField_data_in.size()>0){ WebElement man = driver.findElement(By.cssSelector(".popup__mainContacts .tenderField__s div.tenderField_data_in"));//   System.out.println("FOUND is "+man.getAttribute("textContent")); //    name = man.getAttribute("textContent").trim(); //   name } //      List<WebElement> elements = driver.findElements(By.cssSelector(".tenderField .tenderField_data_in a")); System.out.println("Count elements in array is "+elements.size()); //       if(elements.size()>0){ //    WebElement email = driver.findElement(By.cssSelector(".tenderField .tenderField_data_in a")); //  text=subStr[1]+delimeter+email.getAttribute("href")+delimeter+name+"\r\n"; //         Files.write(Paths.get(resultFilePath), text.getBytes(), StandardOpenOption.APPEND); //   } } }catch (IOException e){ System.out.println("Error opening or processing file with finished purchases"); } // Close the browser instance driver.quit(); } } 

تشغيل البرنامج النصي السيلينيوم

C:\Users\user\selenium>"C:\Program Files\Java\jdk-10.0.1\bin\javac" -cp selenium-server-standalone-3.13.0.jar; kontur_getContacts.java
* C:\Users\user\selenium>"C:\Program Files\Java\jre-10.0.1\bin\java" -cp selenium-server-standalone-3.13.0.jar; kontur_getContacts


والنتيجة هي ملف جهة اتصال يمكنك استخدامه لأغراض التسويق.

Source: https://habr.com/ru/post/ar431510/


All Articles