Rumah hujung hadapan web tutorial js 使用selenium抓取淘宝数据信息

使用selenium抓取淘宝数据信息

Jun 07, 2018 pm 03:20 PM
selenium merangkak Taobao

下面我就为大家分享一篇使用selenium抓取淘宝的商品信息实例,具有很好的参考价值,希望对大家有所帮助。

淘宝的页面大量使用了js加载数据,所以采用selenium来进行爬取更为简单,selenum作为一个测试工具,主要配合无窗口浏览器phantomjs来使用。

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()
Salin selepas log masuk

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

通过jquery技术实现放大镜

使用Puppeteer图像识别技术如何实现百度指数爬虫

使用js如何调用json

Atas ialah kandungan terperinci 使用selenium抓取淘宝数据信息. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menyemak di mana alamat penghantaran Taobao? Bagaimana untuk menyemak alamat penghantaran pesanan yang dibuat pada aplikasi Taobao Bagaimana untuk menyemak di mana alamat penghantaran Taobao? Bagaimana untuk menyemak alamat penghantaran pesanan yang dibuat pada aplikasi Taobao Mar 12, 2024 pm 04:00 PM

Apl Taobao boleh memenuhi semua masalah membeli-belah anda Terdapat begitu banyak peniaga di sini dan begitu banyak produk menunggu untuk anda pilih Tidak kira apa jenis produk yang anda ingin beli, anda boleh mencari dan mencarinya di sini membuat pesanan dan pembelian, dan semua fungsi boleh dikendalikan secara bebas Apabila anda membuat pesanan dengan jayanya, anda hanya perlu menunggu untuk pedagang menghantar barang dan menjalankan penghantaran logistik lokasi penghantaran produk ini dan mengetahui ke mana produk mereka dihantar Terutama apabila anda membeli beberapa produk elektronik, anda boleh menyemak beberapa maklumat lokasi penghantaran untuk mengelakkan masalah membeli beberapa mesin yang telah diperbaharui.

Bagaimana untuk menolak mesej daripada orang yang tidak dikenali di Taobao Bagaimana untuk menolak mesej daripada orang yang tidak dikenali di Taobao Mar 02, 2024 am 08:40 AM

Dalam proses menggunakan Taobao, kami akan menerima mesej daripada beberapa pengguna pelik. Perkara berikut akan memperkenalkan anda kepada cara menyediakan penolakan mesej daripada orang yang tidak dikenali. 1. Selepas membuka Taobao pada telefon mudah alih anda untuk memasuki antara muka, klik item "Mesej" di bahagian bawah untuk beralih kepadanya, dan kemudian klik ikon "+" di bahagian atas sebelah kanan untuk membukanya. 2. Tetingkap akan muncul di bawah ikon, klik dan pilih item "Tetapan Mesej". 3. Terdapat "Stranger Chat Settings" pada halaman tetapan mesej, klik padanya untuk masuk. 4. Akhir sekali, anda akan melihat fungsi "Tolak mesej daripada orang yang tidak dikenali" dalam antara muka yang anda masukkan. Klik butang suis yang sepadan di belakangnya. Apabila butang ditetapkan kepada warna, butang itu dihidupkan dan anda tidak lagi akan menerima mesej daripada pengguna yang tidak dikenali apabila menggunakan Taobao.

Bagaimana untuk mendapatkan sampul merah percuma Taobao 2024 Bagaimana untuk mendapatkan sampul merah percuma Taobao 2024 May 09, 2024 pm 03:22 PM

Acara pesanan percuma Taobao 2024 akan diadakan tiga kali sehari Semua orang perlu membuat pesanan dan membayar jumlah barangan yang sepadan pada masa yang sama Jumlah pesanan percuma akan diedarkan dalam bentuk sampul merah dengan jumlah yang sama. Seterusnya, saya akan bawakan kepada anda cara menerima sampul merah tempahan percuma Taobao pada tahun 2024: dapatkannya Bagi pengguna yang percuma, kelayakan sampul merah akan dikeluarkan kepada kad dan pakej kupon, yang dalam keadaan pengaktifan; versi web Taobao pada masa ini tidak mempunyai kad dan pakej kupon, dan hanya memaparkan rekod kemenangan bagi acara pesanan percuma; Cara mendapatkan sampul merah percuma Taobao 20241. Bagi pengguna yang mendapatkan pesanan percuma, kelayakan sampul merah akan diedarkan kepada pakej kad dan kupon, yang sedang dalam keadaan menunggu pengaktifan 2. Versi web Taobao pada masa ini tidak mempunyai pakej kad dan kupon, dan hanya memaparkan rekod kemenangan bagi aktiviti pesanan percuma ;3.

Bagaimana untuk mematikan pembayaran tanpa kata laluan di Taobao Bagaimana untuk membatalkan kaedah tetapan pembayaran tanpa kata laluan. Bagaimana untuk mematikan pembayaran tanpa kata laluan di Taobao Bagaimana untuk membatalkan kaedah tetapan pembayaran tanpa kata laluan. Mar 12, 2024 pm 12:07 PM

Terdapat begitu banyak fungsi pada APP Taobao Fungsi ini wujud supaya semua orang boleh mendapatkan pengalaman membeli-belah yang lebih baik boleh mencari mengikut kategori atau terus mencari produk ini. Semua orang boleh membeli-belah dalam talian dengan penuh keyakinan anda membeli-belah di sini, anda akan menemui pelbagai kaedah membeli-belah di sini yang membolehkan anda memilih beberapa orang menyukai fungsi pembayaran tanpa kata laluan di sini, dan ada yang tidak begitu menyukainya, tetapi saya rasa keselamatannya tidak begitu tinggi Sudah tentu, semua orang boleh membatalkan pada bila-bila masa.

Cara mematikan iklan diperibadikan di Taobao Cara mematikan iklan diperibadikan di Taobao Mar 01, 2024 pm 12:49 PM

Apabila kami menggunakan Taobao untuk membeli-belah, kami sering menerima kandungan pengiklanan diperibadikan yang ditolak oleh perisian Berikut akan memperkenalkan cara untuk mematikan iklan pengesyoran diperibadikan. Buka apl Taobao pada telefon anda, klik "Taobao Saya" di penjuru kanan sebelah bawah, dan kemudian klik ikon gear di penjuru kanan sebelah atas untuk memasuki halaman "Tetapan". 2. Selepas datang ke halaman tetapan Taobao, cari "Privasi" dan klik padanya untuk masuk. 3. Pada halaman privasi, anda akan melihat "Pengurusan Iklan", klik padanya untuk masuk. 4. Seterusnya, terdapat "Syor Iklan Diperibadikan" di bahagian bawah halaman pengurusan pengiklanan yang dimasukkan Di belakangnya, klik peluncur pada butang suis untuk menetapkan butang kepada kelabu-putih. 5. Pada masa ini, tetingkap akan muncul pada halaman Selepas mengklik dan memilih item "Sahkan Tutup", Taobao

Bagaimana untuk menukar nama di Taobao Bagaimana untuk menukar nama di Taobao Mar 24, 2024 pm 03:31 PM

Fungsi menukar nama membolehkan pengguna menukar nama dan nama panggilan mereka secara bebas dalam Taobao Sesetengah pengguna tidak tahu cara menukar nama mereka di Taobao Cuma klik pada akaun Taobao avatar dalam tetapan dalam My Taobao untuk mengubahnya. editor akan membawanya kepada anda Ini adalah pengenalan kepada cara menukar nama dan nama panggilan anda Jika anda belum tahu, sila muat turun dan cuba. Tutorial penggunaan Taobao Cara menukar nama Taobao Jawapan: Klik pada akaun Taobao avatar dalam tetapan dalam My Taobao untuk mengubahnya Butiran: 1. Masukkan Taobao dan klik [Taobao Saya] di sebelah kanan bawah. 2. Klik ikon [Tetapan] di bahagian atas sebelah kanan. 3. Klik avatar. 4. Klik [Akaun Taobao] sekali lagi. 5. Klik [Modify Account Name], masukkan dan ubah suainya.

Bagaimana untuk mengaktifkan pembayaran cap jari di Taobao Bagaimana untuk mengaktifkan pembayaran cap jari di Taobao Mar 01, 2024 am 08:58 AM

Apabila menggunakan Taobao, kami boleh mengaktifkan fungsi pembayaran cap jari Di sini kami akan memperkenalkan kaedah operasi khusus. 1. Selepas membuka "Taobao" pada telefon mudah alih anda, klik "Taobao Saya" di penjuru kanan sebelah bawah halaman untuk masuk, dan kemudian klik ikon "Tetapan" di penjuru kanan sebelah atas untuk membukanya. 2. Klik pada item "Pembayaran" pada halaman tetapan untuk masuk. 3. Klik pada item "Pembayaran Muka/Cap Jari" pada halaman pembayaran untuk masuk. 4. Seterusnya, pada halaman pembayaran biometrik yang anda masukkan, terdapat butang suis dipaparkan di belakang "Pembayaran Cap Jari". 5. Pada halaman terakhir, anda akan digesa untuk memasukkan kata laluan pembayaran untuk mengesahkan identiti anda Selepas lulus pengesahan, peringatan "Pengaktifan yang berjaya" akan muncul pada halaman, dan anda boleh menggunakan fungsi pembayaran cap jari di Taobao.

Bagaimana untuk menyemak jumlah penggunaan di Taobao Bagaimana untuk menyemak jumlah penggunaan Bagaimana untuk menyemak jumlah penggunaan di Taobao Bagaimana untuk menyemak jumlah penggunaan Mar 12, 2024 pm 03:07 PM

Jika kita biasanya perlu melakukan membeli-belah dalam talian, kita semua akan memilih Taobao sebagai platform, yang boleh memenuhi sepenuhnya semua keperluan membeli-belah kita Ia mempunyai banyak sumber untuk pelbagai komoditi, dan terdapat semua jenis komoditi platform ini. Semua orang mendapati bahawa terdapat banyak kategori produk di sini, dan anda boleh memilihnya mengikut keperluan anda sendiri. Anda boleh membeli apa sahaja yang anda mahu, jadi semua orang pasti akan membelinya di sini harga produk ini sangat berbeza. Semua rekod membeli-belah ini boleh disimpan, yang boleh memudahkan semua orang menyemak pada bila-bila masa. Anda mesti sangat ingin tahu Ini adalah editor

See all articles