1. Html網頁結構介紹-網頁到底如何傳送資料?爬蟲必學
2. 資料傳遞:Get與Post差異,網路封包傳送的差異
3. Html爬蟲Get教學-抓下Yahoo股票資訊,程式交易的第一步
4. Html爬蟲Get實戰-全台最大美食平台FoodPanda爬蟲,把熊貓抓回家
5. 資料分析實戰,熊貓FoodPanda熱門美食系列|看出地區最火料理種類
6. Json爬蟲教學-Google趨勢搜尋|掌握最火關鍵字
7. Json爬蟲實戰-24小時電商PChome爬蟲|雖然我不是個數學家但這聽起來很不錯吧
8. Html爬蟲Post教學-台灣股市資訊|網韭菜們的救星
9. Html爬蟲Post實戰-全球美食平台UberEat爬蟲
10. Pandas爬蟲教學-Yahoo股市爬蟲|不想再盯盤
11. Pandas爬蟲實戰-爬下全台各地區氣象預報歷史資料
12. 資料分析實戰-天氣預報圖像化|一張圖巧妙躲過雨季
å©ç¨ Pythonç Seleniumå¥ä»¶ï¼ä½¿ç¨ç¬è²å¹«æåå°æ³è¦å»£å®£çFBæç« ï¼èªåå享å°æå®ç社åãæ¤èè½ç¨è¼ä½çææ¬ï¼æ¯èµ·ç´æ¥ææ¾FB廣åä¾èªªï¼ï¼å¾å°è¼é«çæå 度ï¼ä¸¦ä¸å¢å åçç²çµ²åç觸ææ¸éãä½è èªå·±æ¸¬è©¦ææåè¶ï¼æ¾å°ä¸åFBç²å°å¨ä¸å¹´å §è¡å1è¬äººè¨é±ã
æåå¨åç¯æç« ãFBèªåç»å ¥ï¼Python Selenium ç¬è²ãç¶ä¸ï¼å·²ç¶è¨å®å¥½äºFBæ©å¨äººç»å ¥ææ使ç¨ç帳èå¯ç¢¼ï¼èç¾å¨æååå¦å¤è¨å®å¹¾ååæ¸ï¼å æ¤ééæ¢åå¼èªªæï¼
useEmail = '帳è'
usePass = 'å¯ç¢¼'
catchk_keyword = ['廣å'] # æ³è¦ç¼æç社åï¼è該社åååä¸åºç¾çåè©
identity = 'æ¥è¶
é' # ç¼æ身å
content = '#python\n #好ç©ç©æ¨è¦' # ç¼ææç« å
§å®¹
postURL = 'https://www.facebook.com/marketingliveincode/posts/1590865937778957' #æå享çæç«
å¨é裡å è¨å®å¥½ä¸åæ¹æ³ï¼æ¯æ¬¡åºå®åæå°æ³å享çæç« ï¼ä¸¦ä¸è¨å®ååæ³è¦çæç« åæ¸ã
# ç¼ææºå
def goto_post(keyword):
driver.get(postURL)# åæå°æ³ç¼çæç«
time.sleep(10)
# é»é¸å享社å
driver.find_element_by_xpath('//div[@aria-label="å¯ééå給æåæ張貼å¨ä½ çåæ
æå ±ä¸ã"]').click()
time.sleep(3)
driver.find_element_by_xpath("//*[contains(text(), 'å享å°ç¤¾å')]").click()
time.sleep(3)
# åæå享身å
driver.find_element_by_xpath('//label[@aria-label="使ç¨ä»¥ä¸èº«åå享"]').send_keys('\ue015')
time.sleep(5)
get_all_identity = driver.find_elements_by_xpath('//div[@aria-checked="false"]')
for getid in get_all_identity:
if getid.text == identity:
getid.click()
break;
time.sleep(5)
# å°Keywordæ¾å
¥ï¼æå°ç¤¾å
driver.find_element_by_xpath('//input[@aria-label="æå°ç¤¾å"]').send_keys(keyword)
time.sleep(3)
éå§ä¾ç §è¨å®ç社åééµåé²è¡ç¼æãå¨éç¨ä¸æå å¼å«ååè¨å®ç goto_post()æ¹æ³ï¼å°æ³è¨å®çæç« è³æé½å 調æ´å®ç¢ï¼èå¾éå§å©ç¨ Seleniumèªåæåååæéæ¨ç±¤é²è¡ç¼éãéè£¡å¿ é è¦æ³¨æï¼å çºFBææ©å¨äººæå¾å¾å´æ ¼ï¼å æ¤ time.sleep()éåæ¹æ³ä¸è½çï¼FBæå°ç話帳èæ被å°éä¸å¤©å°ä¸åææåï¼
#ä¸ååééµåé²å»
for keyword in catchk_keyword:
goto_post(keyword) # å·è¡ç¼ææºå
# è¨ç®è©²ééµåå
±æå¹¾å社å
count = len(driver.find_elements_by_xpath('//div[@style="padding-left: 8px; padding-right: 8px;"]/div[@role="button"]'))
time.sleep(random.randint(5,10))
temp = 0 # ç¨ä¾è¨éå·²ç¼æç社å
for long in range(count):
if long != 0: # è¥ä¸æ¯ç¬¬ä¸æ¬¡å·è¡ï¼åéè¦å次å·è¡ç¼ææºåï¼å çºç¼éæå¾ãå享ãæéææ¶å¤±
goto_post(keyword)
getdriver = driver.find_elements_by_xpath('//div[@style="padding-left: 8px; padding-right: 8px;"]/div[@role="button"]')[temp]
if len(getdriver.text) == 0: # 檢æ¥
print('æå°ç©ºç©ä»¶ï¼ä¸ä¸å')
else:
# é»é²ç¤¾å
getdriver.click()
# ç¼æ
time.sleep(random.randint(3,5))
try:
driver.find_element_by_xpath('//div[@aria-label="çåè¨å§......"]').send_keys(content)
except:
driver.find_element_by_xpath('//div[@aria-label="建ç«å
¬éè²¼æâ¦â¦"]').send_keys(content)
time.sleep(random.randint(3,5))
driver.find_element_by_xpath('//input[@aria-checked="false"]').click()
time.sleep(random.randint(2,5))
driver.find_element_by_xpath('//div[@aria-label="ç¼ä½"]').click()
time.sleep(random.randint(6,12))
temp = temp + 1 # è¨éå·²ç¼æç社å
time.sleep(random.randint(20,50))
作者:楊超霆 行銷搬進大程式 創辦人