Как получить несколько страниц веб-сайта для удаления определенных данных, когда с помощью python и beautifulsoap известна только ссылка на домен - PullRequest
0 голосов
/ 10 апреля 2019

Я новичок в пересмотре Python и хочу написать данные об утилизации кода веб-сайта, и это все внутренняя страница, когда нет нумерации страниц и динамические ссылки на страницы, вы можете увидеть ссылку, которую я разместил, где я пытаюсь собирать информацию о компании, название, адрес и номер телефона
Вот мой код.

Я пробовал много вопросов из stackoverflow, но они не соответствовали моему требованию.

from bs4 import BeautifulSoup
import requests
source= requests.get('http://businessdirectory.pk/Default.aspx?action=Business&pid=762390').text

soup= BeautifulSoup(source, 'lxml')
ParentDiv= soup.find('div' , class_='businessDetails')
CompanyName= ParentDiv.find('p' , class_='title').text
CityName= ParentDiv.find('p' , class_='cityName').text
CityAddress= ParentDiv.find('p' , class_='address').text
PhoneNumber= ParentDiv.find('p' , class_='phone').text
MobileNo= ParentDiv.find('p' , class_='mobNo').text
print(CompanyName)
print(CityName)
print(CityAddress)
print(PhoneNumber)

Все, что я хочу дать просто ссылку на домен, и он получит всю внутреннюю страницу и будет искать там те же данные.

1 Ответ

0 голосов
/ 10 апреля 2019

Попробуйте приведенный ниже код, надеюсь, это поможет.

from bs4 import BeautifulSoup
import requests
page_num = 0

company_name=[]
City_Name=[]
City_Address=[]
Phone_Number=[]
Maxpage=12
while page_num<Maxpage:
    page = "http://businessdirectory.pk/Default.aspx?action=Business&pid=762390&page={}".format(page_num)
    pageTree = requests.get(page)
    soup = BeautifulSoup(pageTree.text, 'html.parser')
    ParentDiv = soup.find('div', class_='businessDetails')

    CompanyName = ParentDiv.find('p', class_='title').text
    CityName = ParentDiv.find('p', class_='cityName').text
    CityAddress = ParentDiv.find('p', class_='address').text
    PhoneNumber = ParentDiv.find('p', class_='phone').text

    company_name.append(CompanyName)
    City_Name.append(CityName)
    City_Address.append(CityAddress)
    Phone_Number.append(PhoneNumber)
    page_num += 1


print(company_name)
print(City_Name)
print(City_Address)
print(Phone_Number)

Вывод будет таким:

['Ab Traders', 'Al Faisal Machinery Store', 'Ameen Pipe Store', 'Aslam Air Compressor', 'Best Engineering Works', 'China Center', 'Empyrean Group', 'General Industrial Corporation', 'Habib Mill Store', 'Humayun Traders', 'Islam Air Corporation', 'Khalid Hussain Workshop 3']
['Faisalabad', 'Faisalabad', 'Faisalabad', 'Faisalabad', 'Faisalabad', 'Faisalabad', 'Lahore', 'Faisalabad', 'Faisalabad', 'Faisalabad', 'Faisalabad', 'Faisalabad']
['Sadiq Market, Railway Road', 'Railway Road', 'Sadiq Market, Railway Road', 'Railway Road', 'Sadiq Market, Railway Road', 'Railway Road', '8-E 1, Jagawar Chowk, Near Allah Hu Chowk, Johar Town', 'Sadiq Market, Railway Road', 'Railway Road', 'Sadiq Market, Railway Road', 'Railway Road', 'General Bus Stand']
['0412639166', '0412646985-2606985', '0412618759', '0412600387', '0412632037', '0412600504-2634502', '0336-9954475', '0412636174-2637446', '0412617274', '0412635348-2617469', '0412618242', '0418781513']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...