Python - выпуск записи текстового файла - PullRequest
0 голосов
/ 13 марта 2019

В настоящее время я работаю над прокси-скребком просто для удовольствия, однако я столкнулся с проблемой

Я хочу сохранить вывод файла в текстовый файл в следующем формате

185.98.232.22:8080
144.217.161.149:8080
103.106.57.174:8080
49.156.47.61:8080
179.109.144.16:44222

В настоящее время, когда я пытаюсь записать текстовый файл, я только получаю первый прокси, а порт не оставшиеся, поэтому я получаю

185.98.232.22:8080

Ниже мой код

from bs4 import BeautifulSoup
import requests

proxyDomain = "https://free-proxy-list.net/"

r = requests.get(proxyDomain)

soup = BeautifulSoup(r.content,"html.parser")

table = soup.find("table",{"id" : "proxylisttable"})

for row in table.find_all("tr"):
    colums = row.find_all("td")
    try:
        print ("%s:%s" % (colums[0].get_text(), colums[1].get_text()))
        Scrapped ="%s:%s" % (colums[0].get_text(), colums[1].get_text())
        file = open("newprox.txt","w")
        file.write(Scrapped)
        file.close()
    except:
        pass

Ответы [ 2 ]

0 голосов
/ 13 марта 2019

Прежде всего, если вы хотите выполнить цикл и запись, вам нужно открыть файл в режиме «добавления», а не «записи», поскольку последний перезаписывает существующее содержимое (см. docs ). Но не следует открывать / закрывать каждую итерацию, поскольку это неэффективно.

Что касается многострочного, вам нужно добавить \n к каждой строке написанного текста.

Итак, вы хотите это:

with open("newprox.txt","w") as file:
    for row in table.find_all("tr"):
        colums = row.find_all("td")
        try:
            Scrapped = "%s:%s" % (colums[0].get_text(), colums[1].get_text())
            print(Scrapped)
            file.write(Scrapped + "\n")
        except:
            pass

или сделайте так, чтобы ваш try блок выглядел так (на самом деле результат тот же):

        Scrapped = "%s:%s\n" % (colums[0].get_text(), colums[1].get_text())
        print(Scrapped, end="")
        file.write(Scrapped)
0 голосов
/ 13 марта 2019

Обновите ваш код, чтобы он соответствовал следующему:

    file = open("newprox.txt","a")
    file.write(Scrapped + "\n")
...