Помогите разложить это по полочкам.
Это должно быть что-то вроде робота, которые будет переходить от сайта к сайту по внутреннем ссылкам
или лучше сделать парсинг поисковой выдачи
(но как тогда сделать выдачу максимально разнообразной, ведь у меня нет конкретного поискового запроса?)?
При парсинге выдает ошибку 503. В чем может проблема?
Буду рад, если распишите более подробно, как обходить данную ошибку.
Я сильно сомневаюсь, что этот сайт без антибот защиты
Планирую сделать парсер букмекерской конторы
подскажите какие темы нужно поучить
есть начальные знания питона, остановился на списках, кортежах и тп
Существует ли способ имитировать эти действия так, чтобы JavaScript успешно их распознавал
Существует ли способ имитировать эти действия так, чтобы JavaScript успешно их распознавал, но без использования библиотеки PyAutoGUI или аналогичных, которые контролируют реальный курсор?
Может ли на hh.ru стоять какая-то защита от парсинга?)
import requests
from bs4 import BeautifulSoup
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
'Accept-Language': 'en-US,en;q=0.9',
'Accept-Encoding': 'gzip, deflate',
'Connection': 'keep-alive',
}
res = requests.get('https://tomsk.hh.ru/article/31475', headers=headers)
if res.status_code == 200:
soup = BeautifulSoup(res.text, 'html.parser')
el = soup.find('div', class_='URS-ratingTable')
if el:
print(el)
else:
print('Table not found!')
else:
print('The problem with connecting to the website', {res.status_code})
Как нажать кнопку на сайте пика через селениум?
# pahe = driver.find_element(By.CLASS_NAME, 'sc-gsnTZi fWJuXR').click()
pahe = driver.find_element(By.CSS_SELECTOR, '.sc-gsnTZi.fWJuXR').click()
И, если есть минутка - на скок понял это проверка сертификатов - как это поправить можно? (куда посмотреть)
[8468:12460:0214/095050.752:ERROR:ssl_client_socket_impl.cc(974)] handshake failed; returned -1, SSL error code 1, net_error -101
[8468:12460:0214/095050.866:ERROR:ssl_client_socket_impl.cc(974)] handshake failed; returned -1, SSL error code 1, net_error -101
$ pip install --upgrade webdriver-manager
$ pip install Pillow
from selenium import webdriver
from selenium.webdriver.edge.service import Service
from PIL import Image
from webdriver_manager.microsoft import EdgeChromiumDriverManager
driver = webdriver.Edge(service=Service(EdgeChromiumDriverManager().install()))
driver.get("https://pillow.readthedocs.io/en/stable/installation.html")
path = "full.png"
driver.save_screenshot(path)
driver.quit()
x = 100
y = 100
w = 500
h = 300
image = Image.open(path)
cropped = image.crop((x, y, x+w, y+h))
cropped.save("crop.png")
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
from selenium_stealth import stealth
proxy = '45.132.75.19:23820'
options = Options()
options.add_argument('--proxy-server=socks5://' + proxy)
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("window-size=1920,1080")
# options.add_argument("--incognito")
options.add_argument("--disable-extensions")
options.add_argument("--disable-plugins-discovery")
options.add_argument("--start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
executable_path = './chromedriver-121.0.6167.85.exe'
service = Service(executable_path=executable_path)
driver = webdriver.Chrome(service=service, options=options)
stealth(driver,
languages=["en-US", "en"],
vendor="Google Inc.",
platform="Win64",
webgl_vendor="Intel Inc.",
renderer="Intel Iris OpenGL Engine",
fix_hairline=True,
run_on_insecure_origins=True,
user_agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.6167.85 Safari/537.36',
)
try:
driver.get('https://allegro.pl/kategoria/laptopy-491')
time.sleep(30)
print(driver.page_source)
finally:
driver.quit()
Пытался забрать html простым реквестом, получалась не очень
попробовал через selenium - получил то же самое
import requests
import socks
import socket
socks.set_default_proxy(socks.SOCKS5, "45.56.219.55", 52759)
socket.socket = socks.socksocket
url = 'https://www.skiddle.com/festivals/dates.html'
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}
try:
response = requests.get(url, headers=headers, timeout=10)
response.raise_for_status()
print(response.text)
except requests.exceptions.HTTPError as errh:
print("Http Error:", errh)
except requests.exceptions.ConnectionError as errc:
print("Connecting Error:", errc)
except requests.exceptions.Timeout as errt:
print("Timeout Error:", errt)
except requests.exceptions.RequestException as err:
print("Other Error", err)
<!DOCTYPE html>
<!--[if lt IE 7]><html class='ie ie6 lte9 lte8 lte7 no-js'> <![endif]-->
<!--[if IE 7]><html class='ie ie7 lte9 lte8 lte7 no-js'> <![endif]-->
<!--[if IE 8]><html class='ie ie8 lte9 lte8 no-js'> <![endif]-->
<!--[if IE 9]><html class='ie ie9 lte9 no-js'> <![endif]-->
<!--[if gt IE 9]><html class='ie no-js'><![endif]-->
<!--[if !IE]><!--> <html class='no-ie no-js' lang='en'><!--<![endif]-->
<head><!-- Basic Page Needs
================================================== -->
<title>A-Z of Future Festivals</title>
<link rel="manifest" href="/manifest.json">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><!-- DNS Prefetching
================================================== -->
<link rel="preconnect" href="https://d31fr2pwly4c4s.cloudfront.net"/>
<link rel="preconnect" href="https://d1plawd8huk6hh.cloudfront.net"/>
<link rel="preconnect" href="https://www.google-analytics.com" />
<link rel="preload" href="https://d1plawd8huk6hh.cloudfront.net/css-responsive2/fonts/BuenosAires/BuenosAiresWeb1-Regular_gdi.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="preload" href="https://d1plawd8huk6hh.cloudfront.net/css-responsive2/fonts/BuenosAires/BuenosAiresWeb1-Bold_gdi.woff2" as="font" type="font/woff2" crossorigin="anonymous">
<link rel="dns-prefetch" href="https://d31fr2pwly4c4s.cloudfront.net"/>
<link rel="dns-prefetch" href="https://d1plawd8huk6hh.cloudfront.net"/>
<link rel="dns-prefetch" href="https://www.google-analytics.com" />
<link rel="dns-prefetch" href="//connect.facebook.net" />
<link rel="dns-prefetch" href="//www.googleadservices.com" />
<link rel="dns-prefetch" href="//www.stay22.com" />
<link rel="dns-prefetch" href="//api.stay22.com" />
<link rel="dns-prefetch" href="//skiddle.imgix.net" />
<link rel="dns-prefetch" href="//skiddleartists.imgix.net" />
<!-- CSS
================================================== -->
<meta property="fb:app_id" content="102483650494"/>
<meta http-equiv="x-dns-prefetch-control" content="on"/>
<meta name="insight-app-sec-validation" content="5574b896-289f-48c0-aebb-98730b831151">
<!-- Mobile Specific Metas
================================================== -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
...
Какие есть способы для решения задачи (желательно из ЯП использовать python)
Тинькофф сбрасывает любые сессии каждые 12 часов
Проблемы возникают на моменте ввода кода из смс, как его можно перенаправить серверу?
Как импортировать товары с чужого сайта Wordpress на свой wp?
С wp работаю первый раз
хотелось бы узнать у более опытных людей как это сделать «по человечески»
await page.evaluate(() => {window.scroll(0,0)});
await page.goto(
'https://mdn.mozillademos.org/en-US/docs/Web/API/Element/wheel_event$samples/Scaling_an_element_via_the_wheel?revision=1587366'
);
const elem = await page.$('div');
const boundingBox = await elem.boundingBox();
await page.mouse.move(
boundingBox.x + boundingBox.width / 2,
boundingBox.y + boundingBox.height / 2
);
await page.mouse.wheel({deltaY: -100});
const browser = await puppeteer.launch();
const page = await browser.newPage();
await page.goto('//some.com')
const symbol = "₽";
const xpathExpression = `(//span[contains(text(), '${symbol}')])`;
const els = await page.$x(xpathExpression);
for (const el of els) {
const c = await page.evaluate(_el => {
const s = window.getComputedStyle(_el);
return s.color;
}, el);
if (c === 'rgb(255, 255, 255)') console.log('White is detected!')
}
await browser.close();
Почему переменная all_participants принимает только 10000 значений, а не больше при парсинге?