Автоматизация задачи заполнения формы с использованием запросов Python - PullRequest
0 голосов
/ 27 августа 2018

Я пытаюсь заполнить форму несколько раз, используя запросы Python. Данные, которые я использую, находятся в CSV. Я читаю CSV и заполняю форму. Но я столкнулся с проблемой. Это заполнение формы только первой строки, а не всех строк.

Это коды:

import requests
from bs4 import BeautifulSoup
import csv
import time
import tkinter
from tkinter import *
from tkinter import messagebox
import time
import datetime
from datetime import date
import json

username = "xxx"
password = "xxx"

url = "xxx"
parse_url = "xxx"

commerial_url = "xxx"

def Residential():
    global url, parse_url
    t1 = time.time()
    with open('Residential.csv') as f:
        reader = csv.reader(f)
        next(reader)
        for row in reader:
            builderid = row[0]
            buildername = row[1]
            buildingname = row[2]
            address = row[3]
            city = row[4]
            locality = row[5]
            building_id = row[6]
            property_type = list(map(int, row[7].split(",")))
            status = row[8]
            cdate = row[9]
            bhk = row[10]
            rnumber = row[11]
            rurl = row[12]

            payload = {"action":url,
                       "name":"",
                       "username":username,
                       "password":password,
                       "submit2":""}
            with requests.session() as s:
                s.post(url, payload)
                form_data = {"project[builderid]":builderid,
                             "buildingName":buildingname,
                             "project[address]":address,
                             "city_id":city,
                             "locality_id":locality,
                             "building_id":building_id,
                             "finalCityLocality":"",
                             "prop_types[]":property_type,
                             "1_type":1,
                             "2_type":1,
                             "3_type":1,
                             "4_type":1,
                             "6_type":1,
                             "7_type":1,
                             "90_type":1,
                             "22_type":1,
                             "project[flag]":status,
                             "readyToMoveDate":"",
                             "project[completion_dt]":cdate,
                             "launchDate":"",
                             "ex_id":"",
                             "ehome_visibility":"N",
                             "project[exid_type]":"",
                             "tagline":"",
                             "project[source]":"OTHER",
                             "project[source]":"rera",
                             "project[tco_visibility]":"N",
                             "project[carpet_area_visibility]":"N",
                             "project[pp_visibility]":"N",
                             "project[plan]":"",
                             "brochure_url":"",
                             "project[video_url1]":"",
                             "project[video_url2]":"",
                             "project[video_url3]":"",
                             "project[description]":"",
                             "project[proj_specifics]":"",
                             "project[data_reference]":rurl,
                             "usp[one]":"",
                             "usp[two]":"",
                             "usp[three]":"",
                             "logo_url":"",
                             "projArea":"",
                             "areaUnit":"ACRES",
                             "countTowers":"",
                             "countFloors":"",
                             "countUnits":"",
                             "percentOpen":"",
                             "payplan_url":"",
                             "project[meta_title]":"",
                             "project[meta_description]":"",
                             "show_bsp":"Y",
                             "price_type":"MIN_MAX",
                             "project[pmay_eligible]":"N",
                             "project[rera_status]":"",
                             "project[rera_af_date]":"",
                             "project[rera_regno]":"",
                             "project[rera_url]":"",
                             "project[rera_reg_startDate]":"",
                             "project[rera_reg_expDate]":"",
                             "project[rera_reg_extended]":"N",
                             "project[rera_inf_source]":"",
                             "project[rera_other_source]":"",
                             "project[sales_person_id]":"",
                             "auth_advt_add":"",
                             "cid":"",
                             "user":"",
                             "CMDSubmit":"SUBMIT"}
                s.post(parse_url, data=form_data)
                print(form_data)
                r = s.post(parse_url, data=form_data)
                print(r)
                t2 = time.time()
                total = t2-t1
                messagebox.showinfo("Info",f"Total Time taken to create residential xid is {total}")


root = Tk()
root.title("XID Creator")
v = IntVar()
Radiobutton(root, text="Residential", variable=v, value=1,height=1,width=30, command=Residential).pack(anchor=W)
Radiobutton(root, text="Commercial", variable=v, value=2,height=1,width=30, command=Commercial).pack(anchor=W)

root.mainloop()

всякий раз, когда я нажимаю на жилое помещение, оно заполняет только одну строку формы одновременно, как я могу сделать так, чтобы она прочитала все строки и заполнила форму?

1 Ответ

0 голосов
/ 29 августа 2018

Все, что я решил. Я только что удалил оператор возврата и все работало гладко. Я обновил свой код

...