use firefox to load page

This commit is contained in:
2022-08-31 13:56:27 +02:00
parent 013db2e4ec
commit e4bfeee938
4 changed files with 3061 additions and 13 deletions
+5 -4
View File
@@ -61,7 +61,8 @@ def get_proxy(proxy_type=ProxyType.BRIGHT_DATA):
if __name__ == '__main__': if __name__ == '__main__':
# 修改联系人行,结束联系人行 第三个参数store等于0的时候是随机,传入1的时候是总店 # 修改联系人行,结束联系人行 第三个参数store等于0的时候是随机,传入1的时候是总店
# start_book(744, 858, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=False) # start_book(1, 10, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=False)
start_book(744, 1264, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=True) # start_book(828, 857, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=True)
start_book(1265, 1352, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=True) start_book(300, 301, store_choose_state=1, mode=ModeEnum.AUTOMATIC, headless=False, max_workers=15)
recheck_the_captcha_error_contacts(store_type=1, mode=ModeEnum.AUTOMATIC, on_no_contact_found=lambda: None, headless=True) # recheck_the_captcha_error_contacts(store_type=1, mode=ModeEnum.AUTOMATIC, on_no_contact_found=lambda: None,
# headless=True)
+3032 -1
View File
File diff suppressed because it is too large Load Diff
+17 -3
View File
@@ -8,7 +8,7 @@ import xlsxwriter
from src.config import CONTACT_LIST_FILE from src.config import CONTACT_LIST_FILE
from src.db.mongo_manager import MONGO_STORE_MANAGER from src.db.mongo_manager import MONGO_STORE_MANAGER
from src.pojo.contact_pojo import ContactPojo from src.pojo.contact_pojo import ContactPojo
from src.pojo.mail.mail_pojo import MailAddress, MailPojo from src.pojo.mail.mail_pojo import MailAddress
from src.utils.generate_random_passport_id import get_random_passport_id_number from src.utils.generate_random_passport_id import get_random_passport_id_number
phone_number_prefix = ['6'] phone_number_prefix = ['6']
@@ -24,6 +24,19 @@ class ExcelHelper:
self._df = pandas.concat([self._df, new_df]) self._df = pandas.concat([self._df, new_df])
self._df.to_excel(file_name) self._df.to_excel(file_name)
def read_user_agens(self) -> list:
user_agent_in_json = pandas.read_excel(
"/Users/lpan/Documents/workspace/appointment_tool/docs/mobile_user_agent_list.xlsx").to_json(
orient='records')
user_agent_dict_list = json.loads(user_agent_in_json)
user_agent_list = []
for user_agent_dict in user_agent_dict_list:
user_agent_str = user_agent_dict['user_agent']
if 'Android' in user_agent_str:
if 'Mac OS' not in user_agent_str:
user_agent_list.append(user_agent_dict['user_agent'])
print(user_agent_list)
def read_contacts(self, file_name=CONTACT_LIST_FILE) -> list: def read_contacts(self, file_name=CONTACT_LIST_FILE) -> list:
contact_list_in_json = pandas.read_excel(file_name).to_json(orient='records') contact_list_in_json = pandas.read_excel(file_name).to_json(orient='records')
contact_dict_list = json.loads(contact_list_in_json) contact_dict_list = json.loads(contact_list_in_json)
@@ -198,12 +211,13 @@ def save_mails_to_db():
if __name__ == '__main__': if __name__ == '__main__':
# excel_reader = ExcelHelper() excel_reader = ExcelHelper()
excel_reader.read_user_agens()
# contacts = excel_reader.read_names("/Users/lpan/Documents/rdv/backup_500.xlsx") # contacts = excel_reader.read_names("/Users/lpan/Documents/rdv/backup_500.xlsx")
# print(contacts) # print(contacts)
# write_new_contacts_to_excel(valid_contacts=contacts) # write_new_contacts_to_excel(valid_contacts=contacts)
save_mails_to_db() # save_mails_to_db()
# for mail in excel_reader.read_mails_and_pwd(): # for mail in excel_reader.read_mails_and_pwd():
# MONGO_STORE_MANAGER.insert_email(mail) # MONGO_STORE_MANAGER.insert_email(mail)
# for i in range(1, 64): # for i in range(1, 64):
+6 -4
View File
@@ -119,10 +119,11 @@ class CommandorPage:
def start_browser(self, proxy, pwright, device) -> Union[str, None]: def start_browser(self, proxy, pwright, device) -> Union[str, None]:
try: try:
self.browser = pwright.webkit.launch(headless=self.headless, timeout=PAGE_TIMEOUT, proxy=proxy) self.browser = pwright.firefox.launch(headless=self.headless, timeout=PAGE_TIMEOUT, proxy=proxy)
self.logger.info("模拟设备: " + device) userAgent = random.choice(params.firefox_user_agent_list)
simulated_mobile = pwright.devices[device] print("user_agent is " + userAgent)
context = self.browser.new_context(**simulated_mobile, locale='fr-FR') # context = self.browser.new_context(**simulated_mobile, locale='fr-FR')
context = self.browser.new_context(user_agent=userAgent, locale='fr-FR')
self.page = context.new_page() self.page = context.new_page()
# hide webdriver information # hide webdriver information
self.page.add_init_script("""() => { self.page.add_init_script("""() => {
@@ -156,6 +157,7 @@ class CommandorPage:
self._run(proxy) self._run(proxy)
def _on_page_loaded(self): def _on_page_loaded(self):
# time.sleep(40000)
self.logger.info("页面加载完毕") self.logger.info("页面加载完毕")
self.logger.info("url is " + self.page.url) self.logger.info("url is " + self.page.url)
if self.page.url == RDV_URL: if self.page.url == RDV_URL: