from selenium import webdriver ##pip install selenium
from time import sleep
import csv
f = open('口红1.csv', mode='a',encoding='utf-8',newline='')
#csv.DictWriter 字典写入
csv_writer = csv.DictWriter(f,fieldnames=[
'商品',
'详情',
])
csv_writer.writeheader() #写入表头
browser = webdriver.Chrome()
browser.get('https://www.jd.com/')
browser.find_element_by_css_selector('#key').send_keys('口红')
browser.find_element_by_css_selector('#search > div > div.form > button').click()
browser.implicitly_wait(10) #等待网页加载完成再执行,最多等待十秒(也可以小于十秒钟) time.sleep(10)这个是必须等待10秒后才执行
def drop_down():
for x in range(1,12, 2):
sleep(1)
j = x / 9
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
browser.execute_script(js)
def get_shop_info():
browser.implicitly_wait(10)
drop_down()
browser_lists = browser.find_elements_by_css_selector('.goods-list-v2 .gl-item ')
# print(lists)
for li in browser_lists:
title = li.find_element_by_css_selector('.p-name ').text
href = li.find_element_by_css_selector('.p-name a').get_attribute('href')
dit = {
'商品':title,
'详情':href
}
csv_writer.writerow(dit)
for page in range(1,5):
get_shop_info()
browser.find_element_by_css_selector('.pn-next').click()
Python操作谷歌浏览器,先进行谷歌浏览器驱动的安装。需要把和自己谷歌浏览器相同版本的驱动放到Python的根目录,
Python目录可以在电脑命令行里查找(where Python)。谷歌浏览器关闭自动更新,不然会因为版本变动造成不能使用。谷歌浏览器驱动下载网址:https://googlechromelabs.github.io/chrome-for-testing/
https://registry.npmmirror.com/binary.html?path=chromedriver/ 目前这个两都能正常打开驱动比较齐全。
f = open('口红1.csv', mode='a',encoding='utf-8',newline='')
#csv.DictWriter 字典写入 mode='a',追加写入的方式
csv_writer = csv.DictWriter(f,fieldnames=[
'商品',
'详情',
])
csv_writer.writeheader() #写入表头
newline = “” csv中的自动换行??? 下面的找到的关于这个的解释
- 写入的时候没有指定newline参数会将\n翻译成系统默认的行分割符(\r\n)
- 读的时候没有指定newline参数会将行分割符(\r\n)翻译为\n
webdriver 这个版本不一样的话,命令书写方式也不一样,我这个是4.1.0(安装命令pip install selenium==4.1.0)
browser.find_elements_by_css_selector,我一开始这个命令是不生效的就是因为之前的版本命令不是这个格式造成的错误。
def drop_down():
for x in range(1,12, 2):
sleep(1)
j = x / 9
js = 'document.documentElement.scrollTop = document.documentElement.scrollHeight * %f' % j
browser.execute_script(js)
这个下滑网页是网上找到的一个,适用所有网页吗?还是只能在京东网页使用?(下次试验下)。
browser.find_element_by_css_selector('.pn-next').click()这个是翻页的命令,京东网页是支持按键盘向右的方向键→翻页,那是不是说这个可以替换为键盘输入(键盘输入命令之后可以尝试下)。