用selenium爬取淘宝信息

需要的模块和组件

因为淘宝的Ajax比较复杂,所以这里使用Selenium来模拟浏览器的操作,抓取淘宝商品的信息,并将结果保存到MongoDB中。(我也不清楚为什么复杂,但是可以学一些新东西也可以把。)
Selenium是一个自动化测试工具,利用它可以驱动浏览器执行特定的动作,如点击、下拉等操作,同时还可以获取浏览器当前呈现的页面的源代码,做到可见即可爬。
要用到Chrome就需要用到ChromeDriver,这是一个浏览器驱动程序,用来启动Chrome等浏览器。

分析网站

在这里插入图片描述
可以看到我们输入链接https://s.taobao.com/search?q=好吃的,就可以进入指定的搜索地址。你直接搜东西在复制淘宝会隐藏,不会直观的显示出来,所以这样更美观一些。
在这里插入图片描述
然后就可以用Selenium进行抓取了,下面就是Selenium的一些用法。

from selenium import webdriver					#导入浏览器驱动
from selenium.webdriver.common.by import By		#这是一些方法,下面会细说
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
 
browser = webdriver.Chrome()				#使用 Chrome浏览器爬取
try:
    browser.get('https://www.baidu.com')		#给浏览器传入url
    input = browser.find_element_by_id('kw')		#找到百度的输入框
    input.send_keys('Python')						#传入keys值为python
    input.send_keys(Keys.ENTER)				#找到确认键
    wait = WebDriverWait(browser, 10)		#设置等待的时间
    wait.until(EC.presence_of_element_located((By.ID, 'content_left')))	#等待确认已经进入了要进入的页面
    print(browser.current_url)				#输出输入python后的url
    print('_______________________')
    print(browser.get_cookies())			#输出cookies
    print('_______________________')
    print(browser.page_source)		#输出整个原文html代码
finally:
    browser.close()				#最后关闭browser

上面测试了一下可用Selenium模拟搜索关键字并进行搜索。
做个笔记:
在这里插入图片描述
这句代码的意思是选择选择器。
在这里插入图片描述
检查,找到输入框,右键选择复制Copy selector,就将’kw’这个选择器选择出来,然后进行赋值,再选择确认键。下面的淘宝输入框也是一样的。

正式开始爬取

import pymongo
from selenium import webdriver
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
from pyquery import PyQuery as pq
from config import *
from urllib.parse import quote

browser = webdriver.Chrome()		#指定浏览器
wait 
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值