爬虫登录(webdriver登录和request登录)

resquest申请

登录网页

在这里插入图片描述

对应源码

在这里插入图片描述

对应代码

在这里插入图片描述

查找对应元素

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
1.将申请处理网址作为session.post中的网址
2.将账号输入到pyload字典中作为“username”的值,将密码输入到pyload字典中作为“password”的值,键的名称取决于网页源代码中对文本框所取得名字。

webdriver申请

直接使用插件生成代码

from selenium import webdriver
from bs4 import BeautifulSoup
import requests
import time
driver = webdriver.Chrome()     # 打开 Chrome 浏览器

# 将刚刚复制的帖在这
driver.get("http://www.xue1888.com/")
driver.execute_script("window.scrollTo(100,0);")
driver.get_screenshot_as_file("./sreenshot1.png")
key = input("please input the key with the picture:")
driver.find_element_by_name("username").send_keys("02158412")
driver.find_element_by_name("password").send_keys("194646")
driver.find_element_by_name("key").send_keys(key)
driver.find_element_by_xpath(u"//input[@value='登 录']").click()
time.sleep(10)
driver.find_element_by_link_text(u"点击进入文献下载页").click()
driver.get("http://www.xue1888.com/e/action/ListInfo/?classid=1")
driver.find_element_by_xpath("//div[@id='down_content']/div/div/ul/li[2]/a/div/h3").click()
driver.find_element_by_link_text(u"英文文献下载(推荐)").click()
driver.find_element_by_id("gs_hdr_tsi").clear()
driver.find_element_by_id("gs_hdr_tsi").send_keys("Pest identification")
driver.find_element_by_id("gs_hdr_frm").submit()

所有主要浏览器都支持 scrollTo() 方法

滚动内容的坐标位置100,500:
function scrollWindow(){
    window.scrollTo(100,500);
}

启发于:https://www.jb51.net/article/140239.htm
具体内容如下:
1.安装selenium:

如果你已经安装好anaconda3,直接在windows的dos窗口输入命令安装selenium:

python -m pip install --upgrade pip

查看版本pip show selenium

2.接着去http://chromedriver.storage.googleapis.com/index.html下载chromedriver.exe(根据chrome的版本下载对应的)

3.将下载好的chromedriver.exe解压后放到指定目录

4.安装tesseract-ocr.exe 配置环境变量

5.安装pytesseract : pip install pytesseract

6.python脚本

思路:6.1登录页面按F12检查元素,获取用户名 密码 验证码 验证码图片的元素id

6.2.调用chromedriver

6.3.截取验证码图片的位置

6.4.pytesseract识别图片中字符,最后验证码识别为空!!???这个待解决

6.5.脚本如下:


from selenium import webdriver
from PIL import Image
import pytesseract
import os,time
chromedriver = "D:\Program Files\Anaconda3\selenium\webdriver\chromedriver.exe" #这里写本地的chromedriver 的所在路径
os.environ["webdriver.Chrome.driver"] = chromedriver #调用chrome浏览器
driver = webdriver.Chrome(chromedriver)
driver.get("http://xxxx.com") #该处为具体网址
driver.refresh() #刷新页面
driver.maximize_window() #浏览器最大化
#获取全屏图片,并截取验证码图片的位置
driver.get_screenshot_as_file('a.png')
location = driver.find_element_by_id('imgValidateCode').location
size = driver.find_element_by_id('imgValidateCode').size
left = location['x']
top = location['y']
right = location['x'] + size['width']
bottom = location['y'] + size['height']
a = Image.open("a.png")
im = a.crop((left,top,right,bottom))
im.save('a.png')
time.sleep(1)
#打开保存的验证码图片
image = Image.open("a.png")
#图片转换成字符
vcode = pytesseract.image_to_string(image)
print(vcode)
#填充用户名 密码 验证码
driver.find_element_by_id("staffCode").send_keys("username")
driver.find_element_by_id("pwd").send_keys("password")
driver.find_element_by_id("validateCode").send_keys(vcode)
#点击登录 
driver.find_element_by_id("loginBtn").click()

如果大家有什么问题,欢迎关注公众号留言和博主进一步交流偶
在这里插入图片描述

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要进行Python亚马逊爬虫,你可以使用Selenium库或者urllib库来实现。 使用Selenium库可以模拟浏览器操作,具体步骤如下: 1. 安装Selenium库,并下载对应浏览器的WebDriver(如ChromeDriver)。 2. 导入Selenium库。 3. 创建浏览器对象并指定WebDriver的路径。 4. 使用浏览器对象打开亚马逊网站。 5. 使用Selenium的相关方法来定位和获取页面元素,例如输入框、按钮等。 6. 使用Selenium的方法来模拟点击、输入等操作。 7. 使用Selenium的方法来获取页面源代码或者特定元素的信息。 8. 关闭浏览器对象。 使用urllib库可以发送HTTP请求获取亚马逊页面的源代码,具体步骤如下: 1. 导入urllib库。 2. 使用urllib库的`urlopen()`函数发送GET请求,并指定目标网址。 3. 使用`read()`方法读取响应内容。 4. 对响应内容进行解码(如果需要)。 5. 对解码后的内容进行解析,可以使用BeautifulSoup等库来提取页面元素。 6. 关闭连接。 请注意,亚马逊网站有反爬虫机制,因此你可能需要使用代理、设置请求头、处理验证码等措施来避免被检测和封禁。 参考代码示例(基于Selenium): ``` from selenium import webdriver # 设置ChromeDriver的路径 chrome_driver_path = "path_to_chromedriver" # 创建Chrome浏览器对象 browser = webdriver.Chrome(chrome_driver_path) # 打开亚马逊网站 url = "https://www.amazon.com" browser.get(url) # 在搜索框中输入关键字 search_input = browser.find_element_by_id("twotabsearchtextbox") search_input.send_keys("python") # 点击搜索按钮 search_button = browser.find_element_by_xpath("//input[@value='Go']") search_button.click() # 获取搜索结果 search_results = browser.find_elements_by_xpath("//h2[@class='a-size-mini']") for result in search_results: print(result.text) # 关闭浏览器 browser.quit() ``` 参考代码示例(基于urllib): ``` import urllib.request # 发送GET请求并获取响应 url = "https://www.amazon.com" response = urllib.request.urlopen(url) # 读取响应内容 content = response.read().decode("utf-8") print(content) # 解析页面内容,提取相关信息 # ... # 关闭连接 response.close() ``` 希望以上信息对你有所帮助!

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值