Facebook
From ID:pE5umMzO0, 2 Years ago, written in Python.
Embed
Download Paste or View Raw
Hits: 412
  1. import selenium
  2. from typing import Optional
  3. from selenium import webdriver
  4. from selenium.webdriver.common.keys import Keys
  5. from selenium.webdriver.common.by import By
  6.  
  7.  
  8. def write_thread(
  9.         driver, server: str, board: str, thread: str,
  10.         body: str, name: str = None, mail: str = None
  11. ) -> (bool, Optional[str]):
  12.     url = f"https://{server}.5ch.net/test/read.cgi/{board}/{thread}/l50"
  13.  
  14.     # TODO: エラー処理
  15.     driver.get(url)
  16.  
  17.     # 要素に値を詰める
  18.     elem = driver.find_element(By.XPATH, '//textarea[@name="MESSAGE"]')
  19.     elem.send_keys(body)
  20.     if name is not None:
  21.         elem = driver.find_element(By.XPATH, '//input[@name="FROM"]')
  22.         elem.send_keys(name)
  23.     if mail is not None:
  24.         elem = driver.find_element(By.XPATH, '//input[@name="mail"]')
  25.         elem.send_keys(mail)
  26.  
  27.     # 書きこみボタンを押す
  28.     elem = driver.find_element(By.XPATH, '//input[@name="submit"]')
  29.     elem.click()
  30.  
  31.     # Cookieをセットしてない場合は承諾ボタンを押す
  32.     if "書きこみ&クッキー確認" in driver.page_source:
  33.         elem = driver.find_element(By.XPATH, '//input[@name="submit"]')
  34.         elem.click()
  35.  
  36.     if driver.title == "ERROR!":
  37.         elem = driver.find_element(By.XPATH, '/html/body/font[1]/b')
  38.         return False, elem.text
  39.     else:
  40.         return True, None
  41.  
  42.  
  43. def setup_driver():
  44.     ua = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.75 Safari/537.36 Edg/99.0.1150.36'
  45.  
  46.     options = webdriver.ChromeOptions()
  47.     options.add_argument('--user-agent=' + ua)
  48.  
  49.     return webdriver.Chrome(chrome_options=options)
  50.  
  51.  
  52. if __name__ == '__main__':
  53.     driver = setup_driver()
  54.     print(write_thread(driver, 'mi', 'news4vip', '1671786885', '書きこみてすつ', '>>1', 'mail address'))
  55.  

Replies to scraping 5ch/VIP rss

Title Name Language When
Re: scraping 5ch/VIP ID:pE5umMzO0 python 2 Years ago.