Как решить, поймать изображение и смайликов в веб-сканере, используя селен - PullRequest
0 голосов
/ 05 апреля 2020

Я хочу задать несколько вопросов.

Я использую Python 3.7.6, веб-драйвер и селен для создания веб-сканера

И затем я использовал Visual Studio Code для завершения sh мой веб-сканер, и я вывожу CSV-файл.

Я использовал "find_elements_by_xpath", чтобы поймать некоторую информацию. Следующее изображение - это мой код:

from datetime import date,datetime
from selenium import webdriver #載入webdriver
from selenium.webdriver.common.keys import Keys #載入按鍵
from bs4 import BeautifulSoup #載入BeautifulSoup工具
from selenium.webdriver.support.ui import Select
from selenium.common.exceptions import NoSuchElementException
import numpy as np
import xlrd
import csv
import codecs
import time

data = xlrd.open_workbook('B.xlsx')
table = data.sheets()[0]
print(table)
nrows = table.nrows 
ncols = table.ncols 
print(ncols)
print(nrows)
for i in range(1,nrows):
    csv_post="Post_No_" + str(i) + ".csv"
    with open(csv_post, 'a', newline='', encoding="utf-8") as csvfile:
        writer = csv.writer(csvfile)
        writer.writerow(['互動作者','發表時間','互動內容'])
    print_link = table.cell_value(i,3)
    print(i)
    print(print_link)
    driver_blank=webdriver.Chrome('./chromedriver') #使用chrome作為爬蟲輔助工具,把chromedriver載入進來
    driver_blank.get(print_link)
    time.sleep(1)
    post_page_count  = len(driver_blank.find_elements_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[4]/div[2]/div[2]/select/option"))

    if(post_page_count != 0):
        try_value=1
        while(try_value):
            try:
                driver_blank.find_element_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table[2]")
                print("測試顯示正常")
                try_value=0
            except NoSuchElementException as e:
                print("測試顯示異常,現正刷新網頁")
                driver_blank.refresh()
                time.sleep(10)
        print("總頁數:"+str(post_page_count))
        table_rows=len(driver_blank.find_elements_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table"))
        print("共有"+str(table_rows)+"個Table")

        real_table_rows=table_rows+1

        #only 1
        post_author = driver_blank.find_element_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table[1]/tbody/tr[2]/td[1]/a")
        post_content = driver_blank.find_element_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[1]/td/div")
        post_time = driver_blank.find_element_by_xpath("/html/body/form/div[5]/div/div/div[2]/div[1]/div[5]/table[1]/tbody/tr[2]/td[2]/table/tbody/tr[4]/td/div[2]/span")
        print("互動作者:"+post_author.text)
        print("互動內容:")
        print(post_content.text)
        print("發表時間:"+post_time.text)
        print("<<< --- >>>")
        with open(csv_post, 'a', newline='', encoding="utf-8") as csvfile:
            writer = csv.writer(csvfile)
            writer.writerow([post_author.text,post_time.text,post_content.text])

введите описание изображения здесь

Следующее сообщение на форуме: (https://forumd.hkgolden.com/view.aspx?type=MB&message=7197409 )

введите описание изображения здесь

Я хочу поймать текст, смайлики и изображения. Я могу поймать только текст, но я не могу поймать эмодзи и образ. Я не знаю что делать Может кто-нибудь мне помочь? Спасибо.

...