ANTICHAT

ANTICHAT (https://forum.antichat.xyz/index.php)
-   Веб-уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=114)
-   -   Bag Bounty проблема с индексом (https://forum.antichat.xyz/showthread.php?t=580990)

MySystem32 12.12.2022 22:07

Приветствую. Недавно начал читать данную книгу(баг баунти) и я дошел до парсера.
Как говорит автор:

https://forum.antichat.xyz/attachmen...0868314915.png

это просто парсер который собирает список сайтов. Написал код и вот такая ошибка выходит:

https://forum.antichat.xyz/attachmen...0868389496.png

а вот сам код:

Python:


Код:

from
bs4
import
BeautifulSoup
as
sp
import
requests
url
=
"https://www.vulnerability-lab.com/list-of-bug-bounty-programs.php"
webpage
=
requests
.
get
(
url
=
url
)
# отправить get запрос
soup
=
sp
(
webpage
.
content
,
'html.parser'
)
tables
=
soup
.
find_all
(
'table'
)
a_tags
=
tables
[
4
]
.
find_all
(
'a'
)
sites_list
=
open
(
"bug-bounty-sites.txt"
,
"w"
)
for
a
in
a_tags
:
sites_list
.
write
(
a
.
get
(
'href'
)
+
'\n'
)

и сайт на котором нужно запарсить - https://www.vulnerability-lab.com/list-of-bug-bounty-programs.php

huzkerRa 12.12.2022 22:51

в книгах такое часто может встречаться

explorer 12.12.2022 23:20

Это не проблема с индексом, а проблема в незнании пайтона ) Скорее всего сайт определяет что запрос делает программа и отдаёт ошибку 403 - Forbidden: Access is denied.
Не нужно тупо копировать из книжки скрипты, так как парсер настраивается под каждый сайт индивидуально.

P.S. Проверил, так и есть - 403. Лечится легко, нужно добавить в код юзерагента.

https://forum.antichat.xyz/attachments/4924066/78.png

explorer 12.12.2022 23:24

У нас есть хороший курс по Python, приходите, научим )

Поправил код:

Python:


Код:

import
requests
from
bs4
import
BeautifulSoup
def
get_page_data
(
html
)
:
soup
=
BeautifulSoup
(
html
.
text
,
'html.parser'
)
tables
=
soup
.
find_all
(
'table'
)
a_tags
=
tables
[
4
]
.
find_all
(
'a'
)
sites_list
=
open
(
"bug-bounty-sites.txt"
,
"w"
)
for
a
in
a_tags
:
sites_list
.
write
(
a
.
get
(
'href'
)
+
'\n'
)
if
__name__
==
'__main__'
:
url
=
'https://www.vulnerability-lab.com/list-of-bug-bounty-programs.php'
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Linux; Android 5.1.1; SM-G928X Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36'
}
page
=
requests
.
get
(
url
,
headers
=
headers
)
get_page_data
(
page
)


MySystem32 13.12.2022 04:57

Цитата:


explorer сказал(а):

Это не проблема с индексом, а проблема в незнании пайтона ) Скорее всего сайт определяет что запрос делает программа и отдаёт ошибку 403 - Forbidden: Access is denied.
Не нужно тупо копировать из книжки скрипты, так как парсер настраивается под каждый сайт индивидуально.

P.S. Проверил, так и есть - 403. Лечится легко, нужно добавить в код юзерагента.

Так вот оно как, почему мне это в голову не пришло. Проблема в том что автор не указал об этом по поводу юзерагента и он меня не пускал. Может быть я действительно слаб по питону. Спасибо большое!

MySystem32 13.12.2022 04:59

Цитата:


explorer сказал(а):

У нас есть хороший курс по Python, приходите, научим )

Поправил код:

Python:


Код:

import
requests
from
bs4
import
BeautifulSoup
def
get_page_data
(
html
)
:
soup
=
BeautifulSoup
(
html
.
text
,
'html.parser'
)
tables
=
soup
.
find_all
(
'table'
)
a_tags
=
tables
[
4
]
.
find_all
(
'a'
)
sites_list
=
open
(
"bug-bounty-sites.txt"
,
"w"
)
for
a
in
a_tags
:
sites_list
.
write
(
a
.
get
(
'href'
)
+
'\n'
)
if
__name__
==
'__main__'
:
url
=
'https://www.vulnerability-lab.com/list-of-bug-bounty-programs.php'
headers
=
{
'User-Agent'
:
'Mozilla/5.0 (Linux; Android 5.1.1; SM-G928X Build/LMY47X) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.83 Mobile Safari/537.36'
}
page
=
requests
.
get
(
url
,
headers
=
headers
)
get_page_data
(
page
)


Спасибо большое!


Время: 01:05