pomidorq
22.10.2021, 00:23
Скорее всего эта штука никому и нужна не будет, но, у меня возникали проблемы с парсингом через requests, решил сделать простой гайд на проверку использования сайтом капчи.
Просто некоторые сайты используют блокировку подобных запросов, и с первого взгляда хер поймёшь, тот ли там HTML или нет.
Python:
import
requests
import
fake_headers
,
fake_useragent
class
Browser
(
)
:
def
__init__
(
self
)
:
pass
@classmethod
def
gethtml
(
cls
,
url
)
:
"""Write parsed html"""
with
open
(
'index.html'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
str
(
cls
.
request
(
url
)
.
text
)
)
@staticmethod
def
request
(
url
)
:
"""Making fake information"""
fake_header
=
fake_headers
.
Headers
(
browser
=
'chrome'
,
os
=
'win'
,
headers
=
True
)
.
generate
(
)
fake_header
[
'User-Agent'
]
=
fake_useragent
.
UserAgent
(
)
[
'google chrome'
]
"""Make main requests"""
try
:
content
=
requests
.
get
(
'{0}'
.
format
(
url
)
,
headers
=
fake_header
)
if
content
.
status_code
==
200
:
return
content
else
:
return
-
1
except
requests
.
exceptions
.
ConnectionError
:
return
-
1
if
__name__
==
'__main__'
:
browser
=
Browser
(
)
browser
.
gethtml
(
'https://www.blast.hk/threads/105426/'
)
Технология следующая:
1) Передаём ссылку в метод gethtml
2) Открываем появившийся в директории со скриптом файл index.html
Как понять?:
2) Если страница загружается, но на ней не те объекты - парсинг через requestsневозможен
https://forum.antichat.xyz/attachments/27867802/img_58c1377b64.png
3) Если на странице видите число -1, то на ссылку зайти вообще не вышло.
https://forum.antichat.xyz/attachments/27867802/img_93a7aa999e.png
3)Если страница подгружает только HTML маркировку, без CSS - парсингу это никак не помешает, возможно.
https://forum.antichat.xyz/attachments/27867802/img_b8737c3dbf.png
4) Если страница загружается полностью со всеми стилями - преград для парсинга вообще нет.
https://forum.antichat.xyz/attachments/27867802/img_5b7608f814.png
*** Если страница долго грузится, то зайдите в html код, скорее всего там всё есть. Но для достоверности лучше подождать пока она загрузится.
Просто некоторые сайты используют блокировку подобных запросов, и с первого взгляда хер поймёшь, тот ли там HTML или нет.
Python:
import
requests
import
fake_headers
,
fake_useragent
class
Browser
(
)
:
def
__init__
(
self
)
:
pass
@classmethod
def
gethtml
(
cls
,
url
)
:
"""Write parsed html"""
with
open
(
'index.html'
,
'w'
,
encoding
=
'utf-8'
)
as
file
:
file
.
write
(
str
(
cls
.
request
(
url
)
.
text
)
)
@staticmethod
def
request
(
url
)
:
"""Making fake information"""
fake_header
=
fake_headers
.
Headers
(
browser
=
'chrome'
,
os
=
'win'
,
headers
=
True
)
.
generate
(
)
fake_header
[
'User-Agent'
]
=
fake_useragent
.
UserAgent
(
)
[
'google chrome'
]
"""Make main requests"""
try
:
content
=
requests
.
get
(
'{0}'
.
format
(
url
)
,
headers
=
fake_header
)
if
content
.
status_code
==
200
:
return
content
else
:
return
-
1
except
requests
.
exceptions
.
ConnectionError
:
return
-
1
if
__name__
==
'__main__'
:
browser
=
Browser
(
)
browser
.
gethtml
(
'https://www.blast.hk/threads/105426/'
)
Технология следующая:
1) Передаём ссылку в метод gethtml
2) Открываем появившийся в директории со скриптом файл index.html
Как понять?:
2) Если страница загружается, но на ней не те объекты - парсинг через requestsневозможен
https://forum.antichat.xyz/attachments/27867802/img_58c1377b64.png
3) Если на странице видите число -1, то на ссылку зайти вообще не вышло.
https://forum.antichat.xyz/attachments/27867802/img_93a7aa999e.png
3)Если страница подгружает только HTML маркировку, без CSS - парсингу это никак не помешает, возможно.
https://forum.antichat.xyz/attachments/27867802/img_b8737c3dbf.png
4) Если страница загружается полностью со всеми стилями - преград для парсинга вообще нет.
https://forum.antichat.xyz/attachments/27867802/img_5b7608f814.png
*** Если страница долго грузится, то зайдите в html код, скорее всего там всё есть. Но для достоверности лучше подождать пока она загрузится.