L oop через страницы, управляя pageNo на URL - PullRequest
0 голосов
/ 09 апреля 2020

Очень плохо знаком с python и нуждается в помощи о том, как правильно l oop через ссылку, увеличивая значение pageNo на URL, который мне нужно почистить, затем непрерывно добавляйте результаты в df

Вот что у меня есть.

Ссылка находится за стеной входа в систему, но я надеюсь, что вам не нужно это смотреть в мой код.

Заранее спасибо!

from webdriver_manager.chrome import ChromeDriverManager
from bs4 import BeautifulSoup
import urllib.request
import pandas as pd
import time
from pymongo import MongoClient

#database
client = MongoClient("xxx")
db = client["xxx"]
collection = db["xxx"]

# launch WMS
url = "https://xxx.inserdomain.com/solution/login.htm"
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get(url)

#Login start
username = driver.find_element_by_id("username")
username.clear()
username.send_keys("xxx")

password = driver.find_element_by_id("password")
password.clear()
password.send_keys("xxx")

driver.find_element_by_id("loginButton").click()
#login end

# open shipments page
pageSize = 200
pageNo = 0
currentView = 34448
url2 = "https://xxx.insertdomain.com/solution/entitylist.htm?entityName=Shipment&tabName=Shipment&pageNo={pageNo}&pageSize={pageSize}&currentViewId={currentView}".format(pageNo=pageNo, pageSize=pageSize, currentView=currentView)
driver.get(url2)
html = driver.page_source

dfs = pd.read_html(html, attrs={"class":"roundedTable"}, header=5)

for df in dfs:
    df.dropna(how="all", axis="columns", inplace=True),
    df.drop("No", axis="columns", inplace=True),
    df.dropna(how='all', axis=0, inplace=True),
    print(df.to_json(orient="index"))

df.reset_index(inplace=True)
df_dict = df.to_dict("records")
collection.insert_many(df_dict)

1 Ответ

0 голосов
/ 09 апреля 2020

Пример ниже перебирает 100 страниц (от 0 до 99 включительно). Вы можете использовать break, чтобы выйти из l oop.

for pageNo in range(100): # replace 100 with the maximum page number  
    url2 = "https://rby.deposco.com/solution/entitylist.htm?entityName=Shipment&tabName=Shipment&pageNo={pageNo}&pageSize={pageSize}&currentViewId={currentView}".format(pageNo=pageNo, pageSize=pageSize, currentView=currentView)
    ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...