2016-08-08 61 views
0

A. Mein Ziel: Verwenden Sie Python zum Extrahieren von eindeutigen OCPO-IDs aus einer Excel-Tabelle und Verwenden dieser IDs zum Web-Scrape für entsprechende Firmennamen und NIN-IDs. (Hinweis: Sowohl NIN- als auch OCPO-IDs sind für eine Firma eindeutig).Exportieren von Werten aus einer Kalkulationstabelle mit Python für Webscraping (BeautifulSoup4)

B. Details: i. Extrahieren Sie OCPO-IDs aus einer Excel-Tabelle mit openpyxl. ii. Durchsuchen Sie OCPO-IDs einzeln in einer Unternehmensregistry (https://focus.kontur.ru/) und suchen Sie mithilfe von BeautifulSoup4 nach entsprechenden Firmennamen und Firmen-IDs (NIN).

Beispiel: Eine Suche nach OCPO ID "00044428" ergibt ein passender Name der Firma ПАО "НК "РОСНЕФТЬ" und entsprechende NIN ID "7706107510."

  1. speichern Sie in Excel die Liste von Firmennamen und NIN-IDs

C. Mein Fortschritt:... i ich bin in der Lage, die Liste der OCPO IDs von Excel zu Python extrahieren

# Pull the Packages 
import openpyxl 
import requests 
import sys 
from bs4 import BeautifulSoup 

# Pull OCPO from the Spreadsheet 
wb = openpyxl.load_workbook(r"C:\Users\ksong\Desktop\book1.xlsx") 
sheet = wb.active 
sheet.columns[0] 
for cellobjc in sheet.columns[0]: 
    print(cellobjc.value) 

ii. Ich kann eine OCPO-ID suchen und Python den übereinstimmenden Firmennamen und die entsprechende NIN-ID des Unternehmens scrappen lassen.

# Part 1a: Pull the Website 
r = requests.get("https://focus.kontur.ru/search?query=" + "00044428") 
r.encoding = "UTF-8" 

# Part 1b: Pull the Content 
c = r.content 
soup = BeautifulSoup(c, "html.parser", from_encoding="UTF-8") 

# Part 2a: Pull Company name 
name = soup.find("a", attrs={'class':"js-subject-link"}) 
name_box = name.text.strip() 
print(name_box) 

D. Hilfe

i. Wie schreibt man so, dass die einzelnen OCPO-IDs einzeln als Schleife durchsucht werden, damit ich keine Liste von OCPOs IDs bekomme, sondern eine Liste von Suchergebnissen? Mit anderen Worten, jedes OCPO wird durchsucht und mit dem entsprechenden Firmennamen und der NIN-ID abgeglichen. Diese Schleife müsste als ######## ("https://focus.kontur.ru/search?query=" + "########") eingegeben werden.

ii. Welchen Code soll ich auch für Python verwenden, um alle Suchergebnisse in einer Excel-Tabelle zu speichern?

Antwort

0

1) Erstellen Sie eine leere Arbeitsmappe zu schreiben:

wb2 = Workbook() 
ws1 = wb2.active 

2), dass Code alle in der 2. Box setzt in Ihre for-Schleife aus dem ersten Feld.

3) Change "00.044.428" zu str (cellobjc.value)

4) Am Ende jeder Schleife, hängen Ihre Reihe zum neuen Arbeitsblatt:

row = [cellobjc.value, date_box, other_variables] 
ws1.append(row) 

5) Nach der Schleife beendet, speichern Sie Ihre Datei

wb2.save("results.xlsx")