Я пытаюсь webscrape https://old.reddit.com/r/all/ и получаю записи на первой странице.
Когда я запускаю свой код, он работает, но для post_text он копирует только последние пост на странице Reddit 25 раз. Я знаю, что это потому, что он получает запись, а затем публикует ее каждый раз через l oop.
import requests
import urllib.request
from bs4 import BeautifulSoup as soup
my_url = 'https://old.reddit.com/r/all/'
request = urllib.request.Request(my_url,headers={'User-Agent': 'your bot 0.1'})
response = urllib.request.urlopen(request)
page_html = response.read()
page_soup = soup(page_html, "html.parser")
posts = page_soup.findAll("div", {"class": "top-matter"})
post = posts[0]
authors = page_soup.findAll("p", {"class":"tagline"})
author = authors[0]
filename = "redditAll.csv"
f = open(filename, "w")
headers = "Title of the post, Author of the post\n"
f.write(headers)
for post in posts:
post_text = post.p.a.text.replace(",", " -")
for author in authors:
username = author.a.text
f.write(post_text + "," + username + "\n")
f.close()
Изменил это
for post in posts:
post_text = post.p.a.text.replace(",", " -")
for author in authors:
username = author.a.text
На это
for post, author in zip(posts, authors):
post_text = post.p.a.text.replace(",", " -")
username = author.a.text