Heim Web-Frontend js-Tutorial Verwenden Sie Selen, um Taobao-Produktinformationen zu erfassen

Verwenden Sie Selen, um Taobao-Produktinformationen zu erfassen

Mar 23, 2018 pm 04:38 PM
selenium 信息 商品

Dieses Mal werde ich Ihnen die Verwendung von Selen zur Erfassung von Taobao-Produktinformationen vorstellen. Was sind die Vorsichtsmaßnahmen für die Verwendung von Selen zur Erfassung von Taobao-Produktinformationen?

Taobao-Seiten verwenden viele js zum Laden von Daten, daher ist es einfacher, Selen zum Crawlen zu verwenden. Als Testtool wird Selenum hauptsächlich mit den fensterlosen Browser-Phantomjs verwendet.

import re
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from pyquery import PyQuery as pq
'''
wait.until()语句是selenum里面的显示等待,wait是一个WebDriverWait对象,它设置了等待时间,如果页面在等待时间内
没有在 DOM中找到元素,将继续等待,超出设定时间后则抛出找不到元素的异常,也可以说程序每隔xx秒看一眼,如果条件
成立了,则执行下一步,否则继续等待,直到超过设置的最长时间,然后抛出TimeoutException
1.presence_of_element_located 元素加载出,传入定位元组,如(By.ID, 'p')
2.element_to_be_clickable 元素可点击
3.text_to_be_present_in_element 某个元素文本包含某文字
'''
# 定义一个无界面的浏览器
browser = webdriver.PhantomJS(
 service_args=[
  '--load-images=false',
  '--disk-cache=true'])
# 10s无响应就down掉
wait = WebDriverWait(browser, 10)
#虽然无界面但是必须要定义窗口
browser.set_window_size(1400, 900)
def search():
 '''
 此函数的作用为完成首页点击搜索的功能,替换标签可用于其他网页使用
 :return:
 '''
 print('正在搜索')
 try:
  #访问页面
  browser.get('https://www.taobao.com')
  # 选择到淘宝首页的输入框
  input = wait.until(
   EC.presence_of_element_located((By.CSS_SELECTOR, '#q'))
  )
  #搜索的那个按钮
  submit = wait.until(EC.element_to_be_clickable(
   (By.CSS_SELECTOR, '#J_TSearchForm > p.search-button > button')))
  #send_key作为写到input的内容
  input.send_keys('面条')
  #执行点击搜索的操作
  submit.click()
  #查看到当前的页码一共是多少页
  total = wait.until(EC.presence_of_element_located(
   (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > p.total')))
  #获取所有的商品
  get_products()
  #返回总页数
  return total.text
 except TimeoutException:
  return search()
def next_page(page_number):
 '''
 翻页函数,
 :param page_number:
 :return:
 '''
 print('正在翻页', page_number)
 try:
  #这个是我们跳转页的输入框
  input = wait.until(EC.presence_of_element_located(
   (By.CSS_SELECTOR, '#mainsrp-pager > p > p > p > p.form > input')))
  #跳转时的确定按钮
  submit = wait.until(
   EC.element_to_be_clickable(
    (By.CSS_SELECTOR,
     '#mainsrp-pager > p > p > p > p.form > span.J_Submit')))
  #清除里面的数字
  input.clear()
  #重新输入数字
  input.send_keys(page_number)
  #选择并点击
  submit.click()
  #判断当前页是不是我们要现实的页
  wait.until(
   EC.text_to_be_present_in_element(
    (By.CSS_SELECTOR,
     '#mainsrp-pager > p > p > p > ul > li.item.active > span'),
    str(page_number)))
  #调用函数获取商品信息
  get_products()
 #捕捉超时,重新进入翻页的函数
 except TimeoutException:
  next_page(page_number)
def get_products():
 '''
 搜到页面信息在此函数在爬取我们需要的信息
 :return:
 '''
 #每一个商品标签,这里是加载出来以后才会拿网页源代码
 wait.until(EC.presence_of_element_located(
  (By.CSS_SELECTOR, '#mainsrp-itemlist .items .item')))
 #这里拿到的是整个网页源代码
 html = browser.page_source
 #pq解析网页源代码
 doc = pq(html)
 items = doc('#mainsrp-itemlist .items .item').items()
 for item in items:
  # print(item)
  product = {
   'image': item.find('.pic .img').attr('src'),
   'price': item.find('.price').text(),
   'deal': item.find('.deal-cnt').text()[:-3],
   'title': item.find('.title').text(),
   'shop': item.find('.shop').text(),
   'location': item.find('.location').text()
  }
  print(product)
def main():
 try:
  #第一步搜索
  total = search()
  #int类型刚才找到的总页数标签,作为跳出循环的条件
  total = int(re.compile('(\d+)').search(total).group(1))
  #只要后面还有就继续爬,继续翻页
  for i in range(2, total + 1):
   next_page(i)
 except Exception:
  print('出错啦')
 finally:
  #关闭浏览器
  browser.close()
if name == 'main':
 main()
Nach dem Login kopieren

Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben. Weitere spannende Informationen finden Sie in anderen verwandten Artikeln auf der chinesischen PHP-Website.

Empfohlene Lektüre:

Detaillierte Erläuterung der Verwendung von Express und Koa2

JS-Imitation der mobilen Homepage-Schnittstelle von Toutiao

Vue-Aufzählungstyp implementiert HTML

Das obige ist der detaillierte Inhalt vonVerwenden Sie Selen, um Taobao-Produktinformationen zu erfassen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie Informationen zum Autor und zur letzten Änderung in Microsoft Word So entfernen Sie Informationen zum Autor und zur letzten Änderung in Microsoft Word Apr 15, 2023 am 11:43 AM

Microsoft Word-Dokumente enthalten beim Speichern einige Metadaten. Diese Details werden zur Identifizierung des Dokuments verwendet, z. B. wann es erstellt wurde, wer der Autor war, Datum der Änderung usw. Es enthält auch andere Informationen wie die Anzahl der Zeichen, die Anzahl der Wörter, die Anzahl der Absätze und mehr. Wenn Sie den Autor oder die zuletzt geänderten Informationen oder andere Informationen entfernen möchten, damit andere Personen die Werte nicht kennen, gibt es eine Möglichkeit. In diesem Artikel erfahren Sie, wie Sie Informationen zum Autor und zur letzten Änderung aus einem Dokument entfernen. Entfernen Sie den Autor und die zuletzt geänderten Informationen aus dem Microsoft Word-Dokument. Schritt 1 – Gehen Sie zu

Erfahren Sie, wie Sie Selenium einfach mit PyCharm installieren: PyCharm-Installations- und Konfigurationsanleitung Erfahren Sie, wie Sie Selenium einfach mit PyCharm installieren: PyCharm-Installations- und Konfigurationsanleitung Jan 04, 2024 pm 09:48 PM

PyCharm-Installations-Tutorial: Erlernen Sie ganz einfach die Installation von Selenium. Als Python-Entwickler müssen wir häufig verschiedene Bibliotheken und Tools von Drittanbietern verwenden, um die Projektentwicklung abzuschließen. Unter diesen ist Selenium eine sehr häufig verwendete Bibliothek für automatisierte Tests und UI-Tests von Webanwendungen. Als integrierte Entwicklungsumgebung (IDE) für die Python-Entwicklung bietet uns PyCharm eine bequeme und schnelle Möglichkeit, Python-Code zu entwickeln

Laravel-Entwicklung: Wie verwende ich Laravel Dusk und Selenium für Browsertests? Laravel-Entwicklung: Wie verwende ich Laravel Dusk und Selenium für Browsertests? Jun 14, 2023 pm 01:53 PM

Laravel-Entwicklung: Wie verwende ich LaravelDusk und Selenium für Browsertests? Da Webanwendungen immer komplexer werden, müssen wir sicherstellen, dass alle Teile davon ordnungsgemäß funktionieren. Browsertests sind eine gängige Testmethode, mit der die Korrektheit und Stabilität einer Anwendung unter verschiedenen Browsern sichergestellt werden soll. In der Laravel-Entwicklung können Sie LaravelDusk und Selenium für Browsertests verwenden. In diesem Artikel wird erläutert, wie Sie diese beiden Tools zum Testen verwenden

So erhalten Sie die GPU in Windows 11 und überprüfen die Grafikkartendetails So erhalten Sie die GPU in Windows 11 und überprüfen die Grafikkartendetails Nov 07, 2023 am 11:21 AM

Systeminformationen verwenden Klicken Sie auf Start und geben Sie Systeminformationen ein. Klicken Sie einfach auf das Programm, wie im Bild unten gezeigt. Hier finden Sie die meisten Systeminformationen und unter anderem Informationen zur Grafikkarte. Erweitern Sie im Systeminformationsprogramm Komponenten und klicken Sie dann auf Anzeigen. Lassen Sie das Programm alle notwendigen Informationen sammeln und sobald es fertig ist, können Sie den grafikkartenspezifischen Namen und andere Informationen auf Ihrem System finden. Auch wenn Sie über mehrere Grafikkarten verfügen, finden Sie hier die meisten Inhalte zu dedizierten und integrierten Grafikkarten, die an Ihren Computer angeschlossen sind. Verwenden des Geräte-Managers von Windows 11 Wie bei den meisten anderen Windows-Versionen können Sie auch die Grafikkarte auf Ihrem Computer über den Geräte-Manager finden. Klicken Sie auf Start und dann

So teilen Sie Kontaktdaten mit NameDrop: Anleitung für iOS 17 So teilen Sie Kontaktdaten mit NameDrop: Anleitung für iOS 17 Sep 16, 2023 pm 06:09 PM

In iOS 17 gibt es eine neue AirDrop-Funktion, mit der Sie Kontaktinformationen mit jemandem austauschen können, indem Sie zwei iPhones berühren. Es heißt NameDrop und so funktioniert es. Anstatt die Nummer einer neuen Person einzugeben, um sie anzurufen oder ihr eine SMS zu schicken, können Sie mit NameDrop Ihr ​​iPhone einfach in die Nähe der Person halten, um Kontaktdaten auszutauschen, damit sie Ihre Nummer hat. Wenn Sie die beiden Geräte zusammenfügen, wird automatisch die Schnittstelle zum Teilen von Kontakten angezeigt. Wenn Sie auf das Popup klicken, werden die Kontaktinformationen einer Person und ihr Kontaktposter angezeigt (Sie können Ihre eigenen Fotos anpassen und bearbeiten, ebenfalls eine neue Funktion von iOS17). Dieser Bildschirm enthält auch Optionen zum „Nur Empfangen“ oder zum Teilen Ihrer eigenen Kontaktinformationen als Antwort.

Der Single-View-NeRF-Algorithmus S^3-NeRF verwendet Multi-Beleuchtungsinformationen, um Szenengeometrie und Materialinformationen wiederherzustellen. Der Single-View-NeRF-Algorithmus S^3-NeRF verwendet Multi-Beleuchtungsinformationen, um Szenengeometrie und Materialinformationen wiederherzustellen. Apr 13, 2023 am 10:58 AM

Aktuelle 3D-Bildrekonstruktionsarbeiten verwenden normalerweise eine Multi-View-Stereo-Rekonstruktionsmethode (Multi-View-Stereo), die die Zielszene aus mehreren Blickwinkeln (Multi-View) unter konstanten natürlichen Lichtbedingungen erfasst. Diese Methoden gehen jedoch normalerweise von Lambertschen Oberflächen aus und haben Schwierigkeiten, hochfrequente Details wiederherzustellen. Ein weiterer Ansatz zur Szenenrekonstruktion besteht darin, Bilder zu verwenden, die von einem festen Standpunkt, aber mit unterschiedlichen Punktlichtern aufgenommen wurden. Photometrische Stereomethoden nutzen beispielsweise diesen Aufbau und nutzen seine Schattierungsinformationen, um die Oberflächendetails von Nicht-Lambertschen Objekten zu rekonstruieren. Bestehende Einzelansichtsmethoden verwenden jedoch normalerweise Normalkarten oder Tiefenkarten, um das Sichtbare darzustellen

Wie NameDrop auf dem iPhone funktioniert (und wie man es deaktiviert) Wie NameDrop auf dem iPhone funktioniert (und wie man es deaktiviert) Nov 30, 2023 am 11:53 AM

In iOS17 gibt es eine neue AirDrop-Funktion, die es Ihnen ermöglicht, Kontaktinformationen mit jemandem auszutauschen, indem Sie zwei iPhones gleichzeitig berühren. Es heißt NameDrop und hier erfahren Sie, wie es tatsächlich funktioniert. NameDrop macht es überflüssig, die Nummer einer neuen Person einzugeben, um sie anzurufen oder ihr eine SMS zu schicken, damit sie Ihre Nummer hat. Sie können Ihr iPhone einfach in die Nähe der Person halten, um Kontaktinformationen auszutauschen. Wenn Sie die beiden Geräte zusammenfügen, wird automatisch die Schnittstelle zum Teilen von Kontakten angezeigt. Wenn Sie auf das Popup klicken, werden die Kontaktinformationen einer Person und ihr Kontaktposter angezeigt (ein eigenes Foto, das Sie anpassen und bearbeiten können, ebenfalls neu in iOS 17). Dieser Bildschirm enthält auch die Option „Nur Empfangen“ oder das Teilen Ihrer eigenen Kontaktinformationen als Antwort

Verwendung von Selenium und PhantomJS im Scrapy-Crawler Verwendung von Selenium und PhantomJS im Scrapy-Crawler Jun 22, 2023 pm 06:03 PM

Verwendung von Selenium und PhantomJS in Scrapy-Crawlern Scrapy ist ein hervorragendes Webcrawler-Framework unter Python und wird häufig bei der Datenerfassung und -verarbeitung in verschiedenen Bereichen eingesetzt. Bei der Implementierung des Crawlers ist es manchmal erforderlich, Browservorgänge zu simulieren, um die von bestimmten Websites präsentierten Inhalte abzurufen. In diesem Fall werden Selenium und PhantomJS benötigt. Selenium simuliert menschliche Vorgänge im Browser und ermöglicht uns so die Automatisierung von Webanwendungstests

See all articles