Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # coding: utf-8
- import requests #http://docs.python-requests.org/en/master/user/quickstart/#make-a-request
- from bs4 import BeautifulSoup #https://www.crummy.com/software/BeautifulSoup/bs4/doc/
- import time
- obamka = '''
- ░░█▀░░░░░░░░░░░▀▀███████░░░░
- ░░█▌░░░░░░░░░░░░░░░▀██████░░░
- ░█▌░░░░░░░░░░░░░░░░███████▌░░
- ░█░░░░░░░░░░░░░░░░░████████░░
- ▐▌░░░░░░░░░░░░░░░░░▀██████▌░░
- ░▌▄███▌░░░░▀████▄░░░░▀████▌░░
- ▐▀▀▄█▄░▌░░░▄██▄▄▄▀░░░░████▄▄░
- ▐░▀░░═▐░░░░░░══░░▀░░░░▐▀░▄▀▌▌
- ▐░░░░░▌░░░░░░░░░░░░░░░▀░▀░░▌▌
- ▐░░░▄▀░░░▀░▌░░░░░░░░░░░░▌█░▌▌
- ░▌░░▀▀▄▄▀▀▄▌▌░░░░░░░░░░▐░▀▐▐░
- ░▌░░▌░▄▄▄▄░░░▌░░░░░░░░▐░░▀▐░░
- ░█░▐▄██████▄░▐░░░░░░░░█▀▄▄▀░░
- ░▐░▌▌░░░░░░▀▀▄▐░░░░░░█▌░░░░░░
- ░░█░░▄▀▀▀▀▄░▄═╝▄░░░▄▀░▌░░░░░░
- ░░░▌▐░░░░░░▌░▀▀░░▄▀░░▐░░░░░░░
- ░░░▀▄░░░░░░░░░▄▀▀░░░░█░░░░░░░
- ░░░▄█▄▄▄▄▄▄▄▀▀░░░░░░░▌▌░░░░░░
- ░░▄▀▌▀▌░░░░░░░░░░░░░▄▀▀▄░░░░░
- ▄▀░░▌░▀▄░░░░░░░░░░▄▀░░▌░▀▄░░░
- ░░░░▌█▄▄▀▄░░░░░░▄▀░░░░▌░░░▌▄▄
- ░░░▄▐██████▄▄░▄▀░░▄▄▄▄▌░░░░▄░
- ░░▄▌████████▄▄▄███████▌░░░░░▄
- ░▄▀░██████████████████▌▀▄░░░░
- ▀░░░█████▀▀░░░▀███████░░░▀▄░░
- ░░░░▐█▀░░░▐░░░░░▀████▌░░░░▀▄░
- ░░░░░░▌░░░▐░░░░▐░░▀▀█░░░░░░░▀
- ░░░░░░▐░░░░▌░░░▐░░░░░▌░░░░░░░
- ░╔╗║░╔═╗░═╦═░░░░░╔╗░░╔═╗░╦═╗░
- ░║║║░║░║░░║░░░░░░╠╩╗░╠═╣░║░║░
- ░║╚╝░╚═╝░░║░░░░░░╚═╝░║░║░╩═╝░
- '''
- #TODO: получить всю инфу по всем в ссылке
- #1. получить исходный код ссылки
- URL = 'https://www.fbi.gov/wanted/topten'
- list_of_links = [] #список ссылок
- #определим имя данного преступника для подстановки в имя файла
- NAME = ''
- #определим переменные для записи в файл
- DOCHEADING = ''
- SUMMARY = ''
- ALIASES = ''
- DESCRIPTION = []
- REWARD = ' '
- REMARKS = ' '
- CAUTION = ' '
- n = 0
- def get_soup(URL):
- r = requests.get(URL)
- soup = BeautifulSoup(r.content, 'lxml')
- return soup
- soup = get_soup(URL)
- #2. получим список ссылок всех 10 преступников по ссылке URL
- def get_names(soup=soup):
- global list_of_links
- for name in soup.find_all('h3', class_='title'):
- links = name.find_all('a')
- for claster in links:
- link = (claster.get('href'))
- list_of_links.append(link)
- #3. теперь надо обойти каждую ссылку в листе и вытащить всю инфу
- def get_info():
- global DOCHEADING, SUMMARY, ALIASES, DESCRIPTION, REWARD, REMARKS, CAUTION, NAME
- url = list_of_links[n] #каждый элемент листа - ссылка на преступника
- r = requests.get(url)
- soup = BeautifulSoup(r.content, 'lxml')
- #0. имя преступника
- delictName = soup.find_all('h1', class_='documentFirstHeading')[0].text.lower()
- NAME = delictName.replace(' ', '-') #yaser-abdel-said для подстановки в URL
- #1. заголовок, правонарушение
- #1.1. заголовок - в <h1 class="documentFirstHeading">
- docHeading = soup.find_all('h1', class_='documentFirstHeading')[0].text # == LUIS MACEDO
- #1.2 получим обвинения
- summary = soup.find_all('p', class_='summary')[0].text # Unlawful Flight to Avoid Prosecution - First Degree Murder
- #2. псевдонимы
- Aliases = soup.find_all('div', class_='wanted-person-aliases')[0].text #Aliases:
- #"Ye-Ye", Luis Macebo, Luis M. Macedo, Louis Macedo, Louis M. Macedo, Luis M. Maczdo, Luis M. Mercado
- #3. описание
- Description = soup.find_all('table', class_='table table-striped wanted-person-description')[0].find_all('td')
- for element in Description:
- description = element.text + '\n' #Date(s) of Birth Used
- DESCRIPTION.append(description) #March 2, 1988, February 3, 1988, March 3, 1988, March 8, 1988, March 22, 1988 etc.
- #4. награда
- rewardTitle = soup.find_all('div', class_='wanted-person-reward')[0].find('h3').text + '\n' #Reward:
- rewardText = soup.find_all('div', class_='wanted-person-reward')[0].find('p').text #The FBI is offering a reward of up to $100,000 for information leading directly to the arrest of Yaser Abdel Said.
- #5. примечания
- remarksTitle = soup.find_all('div', class_='wanted-person-remarks')[0].find('h3').text + '\n'
- remarksText = soup.find_all('div', class_='wanted-person-remarks')[0].find('p').text
- #6. осторожно!
- cautionTitle = soup.find_all('div', class_='wanted-person-caution')[0].find('h3').text + '\n'
- cautionText = soup.find_all('div', class_='wanted-person-caution')[0].find('p').text
- DOCHEADING = docHeading + '\n'
- SUMMARY = summary + '\n'
- ALIASES = Aliases + '\n'
- REWARD = '\n\n' + rewardTitle + rewardText
- REMARKS = '\n\n' + remarksTitle + remarksText
- CAUTION = '\n\n' + cautionTitle + cautionText
- #print(DOCHEADING, SUMMARY, ALIASES, DESCRIPTION, REWARD)
- def write():
- global DESCRIPTION
- #для возможности подстановки в имя файла имени преступника:
- x = ('C:\\Users\\олег\\Python34\\requestsAndSoup\\fbi.gov\\%s.txt' % (NAME))
- with open(x, 'w') as x:
- for i in DOCHEADING:
- x.write(i)
- for i in SUMMARY:
- x.write(i)
- for i in ALIASES:
- x.write(i)
- for index, element in enumerate(DESCRIPTION):
- if index % 2 != 0:
- element += '\n'
- x.write(element)
- else:
- x.write(element)
- for i in REWARD:
- x.write(i)
- for i in REMARKS:
- x.write(i)
- for i in CAUTION:
- x.write(i)
- DESCRIPTION = []
- x.close()
- def change_n():
- global n
- n += 1
- def main():
- while n <= len(list_of_links) + 1:
- get_names(soup=soup)
- get_info()
- write()
- #time.sleep(4)
- change_n()
- for row in obamka:
- print(row, end = '')
- time.sleep(0.04)
- print(list_of_links)
- main()
Add Comment
Please, Sign In to add comment