Перебор URL-адресов веб-сайтов из текстового файла в BeautifulSoup с Python - PullRequest
0 голосов
/ 08 июня 2019

У меня есть файл .txt с отдельной ссылкой в ​​каждой строке, которую я хочу перебрать, и проанализировать в BeautifulSoup ( response.text , "html.parser"). У меня есть пара вопросов, хотя.

Я могу видеть строки, повторяющиеся из текстового файла, но когда я назначаю их для моего request.get (websitelink), мой ранее работавший код (без итерации) больше не печатает какие-либо данные, которые я очищаю.

Я получаю только пустые строки в результатах.

Я новичок в Python и BeautifulSoup, поэтому я не совсем уверен, что я делаю не так. Я попытался проанализировать строки как строку, но это не сработало.

import requests
from bs4 import BeautifulSoup
filename = 'item_ids.txt'

with open(filename, "r") as fp:
    lines = fp.readlines()
    for line in lines:

        #Test to see if iteration for line to line works
        print(line)

        #Assign single line to websitelink
        websitelink = line

        #Parse websitelink into requests
        response = requests.get(websitelink)
        soup = BeautifulSoup(response.text, "html.parser")

        #initialize and reset vars for cd loop
        count = 0
        weapon = ''
        stats = ''

        #iterate through cdata on page, and parse wanted data
        for cd in soup.findAll(text=True):
            if isinstance(cd, CData):
                #print(cd)
                count += 1
                if count == 1:
                    weapon = cd
                if count == 6:
                    stats = cd

        #concatenate cdata info
        both = weapon + " " + stats
        print(both)

Код должен следовать за этими шагами:

  1. Чтение строки (URL) из текстового файла и присвоение переменной для использования w / request.get (websitelink)
  2. BeautifulSoup соскребает ссылку на CData и печатает ее
  3. Повторяйте шаги 1 и 2 до последней строки текстового файла (последний URL)

Любая помощь будет принята с благодарностью,

Спасибо

1 Ответ

0 голосов
/ 08 июня 2019

Не знаю, может это вам помочь или нет, но я добавил strip() к вашей link переменной, когда вы присваиваете ее websitelink, и помог мне заставить ваш код работать. Вы можете попробовать это.

websitelink = line.strip()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...