Как сканировать список URL без цикла for? - PullRequest
0 голосов
/ 07 декабря 2018

У меня есть пакет из списка URL, и я хочу просканировать некоторую информацию по этим URL

daa = ['https://old.reddit.com/r/Games/comments/a2p1ew/', 'https://old.reddit.com/r/Games/comments/9zzo0e/', 'https://old.reddit.com/r/Games/comments/a31a6q/', ]

for y in daa:
uClient = requests.get(y, headers = {'User-agent': 'your bot 0.1'})
page_soup = soup(uClient.content, "html.parser")
time= page_soup.findAll("p", {"class":"tagline"})[0].time.get('datetime').replace('-', '')

И я хорошо работаю, чтобы получить все time, которые я хочу.Но мне нужно сделать это без цикла for, или я имею в виду, что мне нужно open и записать файл на следующем шаге, но если я сделаю это в том же цикле, результат будет странным.Как получить time без цикла for?

1 Ответ

0 голосов
/ 07 декабря 2018

вы можете сделать, как указано выше, используя open(file, 'a').Или то, что мне нравится делать, это добавлять все в таблицу, а затем записывать все как файл.

import requests
import bs4 
import pandas as pd


results = pd.DataFrame()

daa = ['https://old.reddit.com/r/Games/comments/a2p1ew/', 'https://old.reddit.com/r/Games/comments/9zzo0e/', 'https://old.reddit.com/r/Games/comments/a31a6q/', ]

for y in daa:
    w=1
    uClient = requests.get(y, headers = {'User-agent': 'your bot 0.1'})
    page_soup = bs4.BeautifulSoup(uClient.content, "html.parser")
    time= page_soup.findAll("p", {"class":"tagline"})[0].time.get('datetime').replace('-', '')

    temp_df = pd.DataFrame([[y, time]], columns=['url','time'])
    results = results.append(temp_df).reset_index(drop = True)

result.to_csv('path/to_file.csv', index=False) 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...