как обойти googletagmanager при парсинге - PullRequest
1 голос
/ 14 июля 2020

Когда на сайт добавлен скрипт googletagmanadger, я не могу получить то, что мне нужно. С помощью этого кода я с этого момента соскребал ссылки. Я получаю «www.googletagmanager.com» в каждой строке ... Так что я не знаю, как с этим справиться. Спасибо

[HTML] [1]

[КАК СМОТРЕТЬ CSV-ФАЙЛ] [2]

from bs4 import BeautifulSoup
import csv
import pandas as pd
from csv import writer



data_list = ["LINKI", "GOWNO", "JAJCO"]

with open('innovators.csv', 'w', newline='') as file:
    writer = csv.writer(file, delimiter=',')
    writer.writerow(data_list)
    for i in range(0,50):
        #df = pd.read_csv("C:\\Users\\Lukasz\\Desktop\\PROJEKTY PYTHON\\W TRAKCIE\\bf3_strona2.csv")
        #url = "https://bf3.space/" + df['LINKS'][i]
        url='https://bf3.space/a-Byu6am3P'
        response = requests.get(url)
        data = response.text
        soup = BeautifulSoup(data, 'lxml')
        rows = soup.find('iframe')
        q = (rows.get('src'))
        writer.writerow([q])


[1]: https://i.stack.imgur.com/Ogq0N.png
[2]: https://i.stack.imgur.com/3JYqc.png

1 Ответ

0 голосов
/ 14 июля 2020

Вы можете использовать soup.find() с лямбдой.

Например:

import requests
from bs4 import BeautifulSoup


url = 'https://bf3.space/a-Byu6am3P'
soup = BeautifulSoup(requests.get(url).content, 'html.parser')

print( soup.find('iframe', src=lambda s: 'googletagmanager.com' not in s) )

Печатает первый не-googletagmanager <iframe> тег:

<iframe align="center" frameborder="0" height="1500" src="https://ven-way.x.yupoo.com/albums/83591895?uid=1" style="margin: 10px 0;padding: 0px 0px; border:none" width="100%"></iframe>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...