我有以下工作测试解决方案,可输出 IP 地址和信息 -
\n现在我想将其与我的 ScraperAPI-Account 和其他代理一起使用。\n但是当我取消注释这两行时 -
\n# PROXY = f'http://scraperapi:{SCRAPER_API}@proxy-server.scraperapi.com:8001'\n# options.add_argument('--proxy-server=%s' % PROXY) \nRun Code Online (Sandbox Code Playgroud)\n该解决方案不再有效 -
\n我如何将我的代理与 selenium / 该代码一起使用?\n(scraperAPI 建议使用 selenium-wire 模块,但我不\xc2\xb4t 喜欢它,因为它对其他工具的特定版本有一些依赖 - 所以我想无需使用代理即可使用)
\n这可能吗?
\nimport time\nfrom bs4 import BeautifulSoup\nfrom selenium import webdriver\nfrom selenium.webdriver.chrome.options import Options\nfrom selenium.webdriver.chrome.service import Service\nfrom sys import platform\nimport os, sys\nfrom selenium.webdriver.support.ui import WebDriverWait\nfrom webdriver_manager.chrome import ChromeDriverManager\nfrom fake_useragent import UserAgent\nfrom dotenv import load_dotenv, find_dotenv\n\nWAIT = 10\n\nload_dotenv(find_dotenv()) \nSCRAPER_API = os.environ.get("SCRAPER_API")\n# PROXY = f'http://scraperapi:{SCRAPER_API}@proxy-server.scraperapi.com:8001'\n\nsrv=Service(ChromeDriverManager().install())\nua = UserAgent()\nuserAgent = ua.random\noptions = …Run Code Online (Sandbox Code Playgroud) 我想向特定的电报用户发送消息 -
因此,我创建了一个名为 Rapid1898Bot 的机器人并获取它的 api 密钥。我还在机器人中发送消息并进行处理
https://api.telegram.org/bot<Bot\_token>/getUpdates
Run Code Online (Sandbox Code Playgroud)
聊天 ID
使用以下代码,我现在可以向机器人发送消息 - 这很好:
import os
from dotenv import load_dotenv, find_dotenv
import requests
load_dotenv(find_dotenv())
TELEGRAM_API = os.environ.get("TELEGRAM_API")
# CHAT_ID = os.environ.get("CHAT_ID_Rapid1898Bot")
CHAT_ID = os.environ.get("CHAT_ID_Rapid1898")
print(CHAT_ID)
botMessage = "This is a test message from python!"
sendText = f"https://api.telegram.org/bot{TELEGRAM_API}/sendMessage?chat_id={CHAT_ID}&parse_mode=Markdown&text={botMessage}"
response = requests.get(sendText)
print(response.json())
Run Code Online (Sandbox Code Playgroud)
但现在我还想向特定的电报用户发送消息。根据这个解释:
我本来期待着
a)从我的电报帐户向机器人发送消息
b) 然后打开
https://api.telegram.org/bot<Bot\_token>/getUpdates
Run Code Online (Sandbox Code Playgroud)
但不幸的是,它似乎总是相同的聊天 ID,我可以用它将消息发送到rapid1898bot - 但不能发送到我的电报帐户。
为什么这不起作用以及为什么我总是得到相同的聊天 ID?
通常 PyInstaller 对我来说工作得很好,但我在使用 python 模块 pycountry 时发现了一个问题。
\n我尝试了这个非常简单的代码:
\nimport pycountry\nland="DE"\ncountry = pycountry.countries.get (alpha_2=land)\nprint(country.name)\nRun Code Online (Sandbox Code Playgroud)\n用pyinstaller编译它:
\npyinstaller --onefile xyz.py\nRun Code Online (Sandbox Code Playgroud)\n但我想执行编译后的 exe 我收到此错误:
\nTraceback (most recent call last):\n File "temp2.py", line 1, in <module>\n import pycountry\n File "<frozen importlib._bootstrap>", line 983, in _find_and_load\n File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked\n File "<frozen importlib._bootstrap>", line 677, in _load_unlocked\n File "c:\\users\\polzi\\appdata\\local\\programs\\python\\python37\\lib\\site-packages\\PyInstaller\\loader\\pyimod03_importers.py", line 623, in exec_module\n exec(bytecode, module.__dict__)\n File "site-packages\\pycountry\\__init__.py", line 12, in <module>\n File "site-packages\\pkg_resources\\__init__.py", line 481, in get_distribution\n …Run Code Online (Sandbox Code Playgroud) 我想在此页面上使用 Selenium: https: //www.avis.com/en/home
如果没有无头模式,该代码一切正常:
import requests
from bs4 import BeautifulSoup
import os, sys, time
import xlwings as xw
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_chains import ActionChains
from random import choice
from selenium import webdriver
from sys import platform
WAIT = 1
link = f"https://www.avis.com/en/home"
cd = '/chromedriver.exe'
options = Options()
# options.add_argument('--headless')
options.add_experimental_option ('excludeSwitches', ['enable-logging'])
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.106 Safari/537.36")
driver = webdriver.Chrome (path + cd, options=options)
driver.get …Run Code Online (Sandbox Code Playgroud) python ×4
selenium ×2
web-scraping ×2
bots ×1
headless ×1
module ×1
proxies ×1
pyinstaller ×1
telegram ×1