Здесь я хочу удалить данные, вставив номер и отправив, нажав кнопку «Отправить», чтобы удалить данные с помощью python beautifulsoup - PullRequest
0 голосов
/ 24 января 2019

ниже мой код.Так как ссылка не меняется после отправки рег номера.пожалуйста, кто-нибудь, помогите мне взломать этот код.

from bs4 import BeautifulSoup

import requests

r = requests.get('http://www.mpmedicalcouncil.net/smr_database.html')

soup = BeautifulSoup(r.text,'lxml')

links = soup.find('input',{"id":"FormsEditRegNo"})

Ответы [ 2 ]

0 голосов
/ 24 января 2019

Я думаю, что селен может быть излишним для этого сайта. Вы можете использовать запросы для имитации пост-запроса , выполняемого страницей (URL-адрес и параметры для этого можно найти на вкладке сети в инструменте проверки в большинстве браузеров). Вы можете увидеть данные формы здесь. enter image description here

Это даст вам текст ответа. Затем вы можете использовать BeautifulSoup или pandas (или и то и другое), чтобы получить нужные данные.

import requests
from bs4 import BeautifulSoup
import pandas as pd
reg_no=12345
payload={
'Name':'',
'RegNo':reg_no,
'FormsButton1': 'Submit'
}
r=requests.post('http://www.mpmedicalcouncil.net/smr_database_search_result.asp',data=payload)
soup=BeautifulSoup(r.text,'html.parser')
data_table=soup.find('table',attrs={'width':590})
print(pd.read_html(str(data_table))[0])

выход

         0                               1                         2      ...                      5              6             7
0  Sr. No.                         Council                      Name      ...       Registration No.  Qualification  Year of Reg.
1        1  Madhya Pradesh Medical Council             Gawali Deepak      ...                  12345           MBBS          2011
2        2          Medical Council Bhopal  Maheshwari, Shyam Sunder      ...                  12345           MBBS          1993

[3 rows x 8 columns]

Редактировать: несколько регистрационных номеров и получение вывода в списке списка

import requests
from bs4 import BeautifulSoup
import pandas as pd
reg_no_list=[12345,2345]
all_results=[]
for reg_no in reg_no_list:
    payload={
    'Name':'',
    'RegNo':reg_no,
    'FormsButton1': 'Submit'
    }
    r=requests.post('http://www.mpmedicalcouncil.net/smr_database_search_result.asp',data=payload)
    soup=BeautifulSoup(r.text,'html.parser')
    data_table=soup.find('table',attrs={'width':590})
    df=pd.read_html(str(data_table))[0]
    df_to_list= df.drop(df.columns[0], axis=1).values.tolist()#sr..no column not required
    all_results.extend(df_to_list[1:])#[1:] b'coz first item in list will be headers
for l in all_results:
    print(l)

выход

['Madhya Pradesh Medical Council', 'Gawali Deepak', 'Mr. Gajendra Singh Gawali', '19- New Five Brigade, Complex, Agar Road, Ujjain (MP) 456007', '12345', 'MBBS', '2011']
['Medical Council Bhopal', 'Maheshwari, Shyam Sunder', 'R.C. Maheshwari', 'Cement Road, At Post. Piparia DIt. Hoshangabad', '12345', 'MBBS', '1993']
['Mahakoshal Medical Council, Indore', 'Aterkar Ku Sunanda', 'Puushottam Rao Aterkar', 'Near Y Sadashiv Studio Jayendra Ganj Gwalior', '2345', 'MBBS', '1969']
['Medical Council Bhopal', 'Deljeet Singh Kindra', 'Shri jogendra Singh Kindra', 'C/o Shri J.S. Kindra Near Jhansigate, Bina DIt. Sagar', '2345', 'MBBS', '1979']
['Madhya Pradesh Medical Council', 'Gupta Shyam Sunder', 'Shri Ramesh Chand', 'C/o Parmand Medical Store Sheopur Kalan 476337', '2345', 'MBBS', '1999']
0 голосов
/ 24 января 2019

Используйте селен для отправки ввода, затем нажмите на кнопку отправить

from selenium import webdriver

driver = webdriver.Chrome("C:/chromedriver_win32/chromedriver.exe")
driver.get('http://www.mpmedicalcouncil.net/smr_database.html')
driver.find_element_by_id("FormsEditRegNo").send_keys("123456789")

driver.find_element_by_css_selector('input[value="Submit"]').click()

Затем вы можете использовать Pandas, Selenium или BeautifulSoup для анализа таблицы:

soup = BeautifulSoup(driver.page_source,'lxml')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...