网站建设话术,IT周末做网站违反制度么,海兴做网站,热点新闻事件及观点文章目录1. 环境配置与浏览器启动2. 文件上传操作3. 搜索框交互4. 图片批量下载5. 分页数据抓取6. 商品信息抓取1. 环境配置与浏览器启动
首先需要配置 Selenium 环境并启动浏览器。以下是使用 Microsoft Edge 浏览器的基本设置#xff1a;
import os.path
import time
impo…文章目录1. 环境配置与浏览器启动2. 文件上传操作3. 搜索框交互4. 图片批量下载5. 分页数据抓取6. 商品信息抓取1. 环境配置与浏览器启动首先需要配置 Selenium 环境并启动浏览器。以下是使用 Microsoft Edge 浏览器的基本设置importos.pathimporttimeimportrequestsfromseleniumimportwebdriverfromselenium.webdriver.edge.optionsimportOptionsfromselenium.webdriver.common.keysimportKeysfromselenium.webdriver.common.byimportBy edge_optionsOptions()edge_options.binary_locationrC:\Program Files (x86)\Microsoft\Edge\Application\msedge.exedriverwebdriver.Edge(optionsedge_options)2. 文件上传操作Selenium 可以模拟用户上传文件的操作。以下代码展示了如何通过文件输入框上传本地图片driver.get(https://graph.baidu.com/pcpage/index?tpl_frompc)input_elementdriver.find_element(byBy.NAME,valuefile)input_element.send_keys(rD:\Code\PythonTest\Picture1\1.jpg)time.sleep(5)elementdriver.find_element(byBy.CLASS_NAME,valuegraph-guess-word)print(element.text)分析send_keys()方法用来向文件输入框传递本地文件路径3. 搜索框交互自动化搜索是常见的 Web 交互场景。以下示例展示了如何在 B 站搜索内容driver.get(http://www.bilibili.com)driver.find_element(byBy.TAG_NAME,valueinput).send_keys(pythonKeys.RETURN)time.sleep(5)分析使用By.TAG_NAME定位器找到第一个input元素send_keys()方法不仅发送文本还可以发送特殊按键Keys.RETURN模拟回车键提交搜索表单4. 图片批量下载自动化下载网页图片是数据抓取的常见需求。以下代码展示了如何从百度图片批量下载图片ifnotos.path.exists(./Picture2):os.mkdir(./Picture2)driver.get(https://image.baidu.com/search/index?tnbaiduimageieutf-8word迪丽热巴)driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)time.sleep(8)img_listdriver.find_elements(By.XPATH,value//img[classimg_7rRSL])i1forimginimg_list:img_urlimg.get_attribute(src)img_datarequests.get(img_url)withopen(f./Picture2/{i}.png,wb)asf:f.write(img_data.content)i1分析driver.execute_script(window.scrollTo(0, document.body.scrollHeight);)使用 JavaScript 执行器滚动页面到底部document.body.scrollHeight获取文档总高度确保滚动到底部5. 分页数据抓取处理分页内容是 Web 抓取中的常见操作。以下代码展示了如何抓取苏宁易购的商品评价driver.get(https://review.suning.com/cluster_cmmdty_review/cluster-38249278-000000012389328846-0000000000-1-good.htm?originalCmmdtyTypegeneralsafpd488778a.10004.loverRight.166)hp_fileopen(好评1.txt,w,encodingutf-8)defget_py_content(file):pj_elements_contentdriver.find_elements(byBy.CLASS_NAME,valuebody-content)forelementinpj_elements_content:file.write(element.text\n)get_py_content(hp_file)next_elementsdriver.find_elements(byBy.XPATH,value//*[classnext rv-maidian ])print(next_elements)whilenext_elements![]:next_elementsnext_elements[0]time.sleep(1)next_elements.click()get_py_content(hp_file)next_elementsdriver.find_elements(byBy.XPATH,value//*[classnext rv-maidian ])hp_file.close()关键方法分析使用 XPath 定位器精确查找下一页按钮//*[classnext rv-maidian ]find_elements()复数返回元素列表即使没有找到元素也不会抛出异常next_elements[0].click()点击第一个符合条件的元素循环条件next_elements ! []检查是否还有下一页6. 商品信息抓取综合示例-抓取苏宁易购上医用口罩的商品信息edge_optionsOptions()edge_options.binary_locationrC:\Program Files (x86)\Microsoft\Edge\Application\msedge.exedriverwebdriver.Edge(optionsedge_options)driver.get(http://www.suning.com)elementdriver.find_element(byBy.ID,valuesearchKeywords)element.send_keys(医用口罩Keys.RETURN)time.sleep(10)driver.execute_script(window.scrollTo(0, document.body.scrollHeight))time.sleep(10)price_elementsdriver.find_elements(byBy.CLASS_NAME,valuedef-price)title_elementsdriver.find_elements(byBy.CLASS_NAME,valuetitle-selling-point)evaluate_elementsdriver.find_elements(byBy.CLASS_NAME,valueinfo-evaluate)store_elementsdriver.find_elements(byBy.CLASS_NAME,valuestore-stock)atime.strftime(%Y-%m-%d)fopen(a医用口罩.txt,w,encodingutf-8)foriinrange(len(price_elements)):f.write(price_elements[i].text\t)f.write(title_elements[i].text\t)f.write(evaluate_elements[i].text\t)f.write(store_elements[i].text\n)f.close()