Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #1) Сделать парсинг сайта https://quotes.toscrape.com и вытащить всех авторов с подробной информацией о каждом: дата и место рождения, #описание и сохранить в текстовый файл
- import requests
- from bs4 import BeautifulSoup
- author_link_list = set()
- for p in range(1, 12):
- url = f'https://quotes.toscrape.com/page/{p}'
- response = requests.get(url)
- soup = BeautifulSoup(response.text, 'html.parser')
- for link in soup.find_all('a', text='(about)'):
- author_link = link['href'] # Получаем ссылку
- if author_link not in author_link_list:
- author_response = requests.get(f'https://quotes.toscrape.com{author_link}')
- author_soup = BeautifulSoup(author_response.text, 'html.parser')
- author_name = author_soup.find('h3', class_='author-title').text
- born_date = author_soup.find('span', class_='author-born-date').text
- born_location = author_soup.find('span', class_='author-born-location').text
- description = author_soup.find('div', class_='author-description').text.lstrip()
- with open('authors.txt', 'a', encoding='utf-8') as f:
- f.write(f"Имя автора: {author_name}\n")
- f.write(f"Дата рождения: {born_date}\n")
- f.write(f"Место рождения: {born_location}\n")
- f.write(f"Описание: {description}\n\n")
- author_link_list.add(author_link)
- print('Информация об авторах сохранена в authors.txt')
- #2) Сделать парсинг сайта https://2krossovka.ru и вытащить первые 108 товаров с подробной информацией о всех характеристиках, которые #открываются у каждого товара в отдельной странице.
- import requests
- from bs4 import BeautifulSoup
- k = 1
- for p in range(1, 12):
- url = f'https://2krossovka.ru/katalog/?page={p}'
- response = requests.get(url)
- if response.status_code == 200:
- soup = BeautifulSoup(response.text, 'html.parser')
- products = soup.find_all('div', class_='caption')
- for product in products:
- if k <= 108:
- with open('products.txt', 'a', encoding='utf-8') as f:
- f.write(f"Порядковый номер товара: {k}\n")
- k += 1
- f.write(f"Название товара: {product.h4.a.text.strip()}\n")
- f.write(f"{product.p.text.strip()}\n")
- f.write(f"ссылка: {product.h4.a['href'].strip()}\n")
- response1 = requests.get(f'{product.h4.a['href'].strip()}')
- if response1.status_code == 200:
- soup = BeautifulSoup(response1.text, 'html.parser')
- specifications = soup.find_all('td', itemprop="name")
- spec_value = soup.find_all('td', itemprop="value")
- for i in range(len(specifications)):
- f.write(f"{specifications[i].text.strip()}: ")
- f.write(f"{spec_value[i].text.strip()}\n")
- f.write(f"\n")
- print("Информация о продуктах сохранена в products.txt")
- #3) С помощью АПИ сайта https://randomuser.me/api рандомно вытащить полную информацию о 5 юзерах
- import requests
- url = "https://randomuser.me/api/?results=5"
- response = requests.get(url)
- response.raise_for_status()
- data = response.json()
- users = data['results']
- with open('users.txt', 'w', encoding='utf-8') as f:
- for user in users:
- f.write("-" * 20 + "\n")
- f.write(f"Имя: {user['name']['first']} {user['name']['last']}\n")
- f.write(f"Пол: {user['gender']}\n")
- f.write(f"Возраст: {user['dob']['age']}\n")
- f.write(f"Город: {user['location']['city']}, {user['location']['country']}\n")
- f.write(f"Email: {user['email']}\n")
- f.write(f"Телефон: {user['phone']}\n")
- f.write(f"Изображение: {user['picture']['large']}\n\n")
- print("Информация о пользователях сохранена в users.txt")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement