Как прочитать все URL из первого столбца в CSV-файле - PullRequest
2 голосов
/ 24 марта 2019

Я пытаюсь прочитать URL из первого столбца в файле CSV.В CSV-файле всего 6051 URL, которые я хочу прочитать.Для этого я попробовал следующие коды:

    urls = []
    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        blogurl = csv.reader(csvfile)
        for row in blogurl:
            row = row[0]
            print(row)

len (строка)

Однако количество отображаемых URL-адресов составляет всего 65. Я понятия не имею, почему общее количествоURL выглядит иначе, чем CSV-файл.

Кто-нибудь может мне помочь разобраться, как читать все URL (всего 6051) из файла csv?

Чтобы прочитать все URL из файла csv, я также попробовал несколько разных кодов, которые привели к одинаковому количеству URL (т.е. 65 URL) или к ошибке, например: 1)

    openfile = open("C:/Users/hyoungm/Downloads/urls.csv")
    r = csv.reader(openfile)
    for i in r:
        #the urls are in the first column ... 0 refers to the first column
        blogurls = i[0]
        print (blogurls)
    len(blogurls)

2)

    urls = pd.read_csv("C:/Users/hyoungm/Downloads/urls.csv")
    with closing(requests.get(urls, stream = True)) as r:
        reader = csv.reader(r.iter_lines(), delimiter = ',', quotechar = '""')
        for row in reader:
            print(row)
            len(row)

3)

    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        lines = csv.reader(csvfile)
        for i, line in enumerate(lines):
            if i == 0:
        for line in csvfile:
            print(line[1:])
            len(line)

4) и

    blogurls = []
    with open("C:/Users/hyoungm/Downloads/urls.csv") as csvfile:
        r = csv.reader(csvfile)
        for i in r:
            blogurl = i[0]
            r = requests.get(blogurl)
            blogurls.append(blogurl)

    for url in blogurls:
        page = urlopen(url[0]).read()
        soup = BeautifulSoup(page, "html.parser")
    len(blogurls)

Я ожидаю вывод 6051 URL, как первоначально было собрано в CSVфайл, вместо 65 URL-адресов.

После прочтения всех URL-адресов, я собираюсь найти текстовые данные из каждого URL-адреса.Я должен был получить следующие текстовые данные, используя все 6051 URL.Пожалуйста, нажмите на следующую ссылку для изображения:

коды и результаты на основе 65 URL до сих пор

1 Ответ

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

У меня работают следующие два подхода:

import requests

r = requests.get('https://raw.githubusercontent.com/GemmyMoon/MultipleUrls/master/urls.csv')
urls = r.text.splitlines()

print(len(urls))  # Returns 6051

и

import csv
import requests
from io import StringIO

r = requests.get('https://raw.githubusercontent.com/GemmyMoon/MultipleUrls/master/urls.csv')
reader = csv.reader(StringIO(r.text))
urls = [line[0] for line in reader]

print(len(urls))  # Returns 6051
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...