进入淘宝网,分别按综合、销量排序抓取100页的所有商品的列表信息。
1、按综合
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 #获取整个网页的源代码
from config import * #可引用congif的所有变量
import pymongo
import pymysql
# client=pymongo.MongoClient(MONGO_URL)
# db = client[MONGO_DB]
# 按综合排序 100页
# 打开淘宝链接,输入‘美食',搜索
# 自动翻页:先得到总页数,再转到 _ 页,确定
#
# browser = webdriver.PhantomJS(service_args=SERVICE_ARGS)
# browser =webdriver.Chrome()
browser = webdriver.Firefox()
wait = WebDriverWait(browser,10)
def search():
print('正在搜索...')
try:
browser.get('https://www.taobao.com') #用这个网页'https://s.taobao.com',无法输入keywords
input=wait.until(
EC.presence_of_element_located((By.CSS_SELECTOR,'#q')) #打开淘宝,右击查看元素,定位到搜索框,选择对应代码,复制-CSS选择器,其实就是‘#q'。
)
submit=wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR,'#J_TSearchForm > div.search-button > button')))
input.send_keys(KEYWORD) #模拟操作,输入内容
submit.click() #点击提交
total = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR,'#mainsrp-pager > div > div > div > div.total'))) #页数
return total.text
except TimeoutException :
return search()
# 翻页
def next_page(page_number):
print('正在翻页',page_number)
try:
input = wait.until(
# 输入框
EC.presence_of_element_located((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > input')) # 打开淘宝,右击查看元素,定位到搜索框,选择对应代码,复制-CSS选择器,其实就是‘#q'。
)
# 搜索按钮
submit = wait.until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#mainsrp-pager > div > div > div > div.form > span.btn.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 > div > div > div > ul > li.item.active > span')