首页 > 其他分享 >爬虫基本工具:urllib丶requests丶selenium丶pytesseract

爬虫基本工具:urllib丶requests丶selenium丶pytesseract

时间:2023-07-27 14:44:07浏览次数:50  
标签:url selenium urllib headers pytesseract print import requests response

urllib来实现cookie和ip代理

  1 from urllib.request import Request, build_opener, urlopen
  2 from fake_useragent import UserAgent
  3 from urllib.parse import urlencode
  4 from urllib.request import HTTPCookieProcessor
  5 from http.cookiejar import CookieJar, FileCookieJar, MozillaCookieJar, LWPCookieJar  # 用来将cookies保存到文件
  6 # FileCookieJar 继承 CookieJar
  7 # MozillaCookieJar\LWPCookieJar继承FileCookieJar
  8 from urllib.request import ProxyHandler
  9 import ssl
 10 
 11 # get丶post请求
 12 def get_html(aurl):
 13     headers = {
 14         'User-Agent': UserAgent().chrome
 15     }
 16     # 如果Request传了data参数的话,就是post请求,没传data就是get.
 17     # 传data的时候,data先是字典类型,通过urlencode(data)编码之后为字符串,然后转字符串转成bytes,也就是str.encode
 18     request = Request(url=aurl, headers=headers)
 19     response = urlopen(request)
 20 
 21     # 忽略验证证书
 22     # ssl1 = ssl._create_unverified_context()
 23     # response = urlopen(requet, context=ssl1)
 24     return response.read()
 25 
 26 # UserAgent 浏览器头
 27 def user_agent_test():
 28     from urllib.request import Request, urlopen
 29     from random import choice
 30     from fake_useragent import UserAgent
 31     from urllib.parse import quote, urlencode
 32 
 33     url = 'http://www.baidu.com'
 34     headers = {
 35         # 模拟Chroom浏览器
 36         'User-Agent': UserAgent().chrome
 37     }
 38     request = Request(url, headers=headers)
 39     print(request.get_header('User-agent'))
 40     # 随机选择
 41     ua = UserAgent()
 42     print(choice([ua.chrome, ua.safari, ua.firefox]))
 43     print(ua.random)
 44 
 45     # 中文参数编码
 46     print(quote('中国'))
 47     adata = {
 48         'wd': '看一百次夜空里的深蓝',
 49         'ie': 'utf-8'
 50     }
 51     url = 'https://www.baidu.com/s?{}'.format(urlencode(adata))
 52     print(url)
 53 
 54 # 登录后保存cookie到文件
 55 def get_cookie():
 56     url = 'https://support.highgo.com/highgo_api/login'
 57     headers = {
 58         'User-Agent': UserAgent().chrome,
 59         # 'Cookie': ""   # 可以直接指定cookie,也可以用HTTPCookieProcessor来保存post后的cookie
 60     }
 61     form_data = {
 62         'userName': '[email protected]',
 63         'password': '039ac48bbf1bdb15e52eb8eb635dc13d'
 64     }
 65     fdata = urlencode(form_data).encode()
 66     request = Request(url, headers=headers, data=fdata)
 67     # response = urlopen(request) 带cookie的话就必须使用build_opener
 68     mcj = MozillaCookieJar()
 69     handler = HTTPCookieProcessor(mcj)
 70     opener = build_opener(handler)
 71     response = opener.open(request)
 72     mcj.save('cookie.txt', ignore_expires=True, ignore_discard=True)
 73     print(response.read().decode())
 74 
 75 # 从文件中加载cookie访问
 76 def use_cookie():
 77     index_url = 'https://support.highgo.com/#/index'
 78     headers = {
 79         'User-Agent': UserAgent().chrome,
 80         # 'Cookie': ""   # 可以直接指定cookie,也可以用HTTPCookieProcessor来保存post后的cookie
 81     }
 82     mcj = MozillaCookieJar()
 83     mcj.load('cookie.txt', ignore_discard=True, ignore_expires=True)
 84     handler = HTTPCookieProcessor(mcj)
 85     opener = build_opener(handler)
 86     request = Request(index_url, headers=headers)
 87     response = opener.open(request)
 88     print(response.read().decode())
 89 
 90 # 代理
 91 def opener_test():
 92     # 代理
 93     url = 'http://www.baidu.com'
 94     headers = {
 95         'User-Agent': UserAgent().chrome
 96     }
 97     # 免费代理ip: https://www.89ip.cn/
 98     # handler = ProxyHandler({"http":"username:password@ip:port"})
 99     # handler = ProxyHandler({"http":"ip:port"})
100     handler = ProxyHandler({"http": "101.43.93.67:7890"})
101     opener = build_opener(handler)
102 
103     request = Request(url, headers=headers)
104     response = opener.open(request)
105     print(response.read().decode())
106 
107 if __name__ == '__main__':
108     use_cookie()

requests来实现cookie和ip代理

 1 import requests
 2 from fake_useragent import UserAgent
 3 
 4 def requests_get():
 5     url = 'https://support.highgo.com/#/index'
 6     response = requests.get(url)
 7     print(response.text)
 8 
 9 def requests_post():
10     url = 'https://support.highgo.com/highgo_api/login'
11     hearders = {
12         'User-agent': UserAgent().chrome
13     }
14     form_data = {
15         'userName': '[email protected]',
16         'password': '039ac48bbf1bdb15e52eb8eb635dc13d'
17     }
18     response = requests.post(url, headers=hearders, data=form_data)
19     print(response.text)
20 
21 def requets_proxy():
22     url = 'https://support.highgo.com/#/index'
23     proxy = {
24         "http":"8.219.125.46:80"
25     }
26     hearders = {
27         'User-agent': UserAgent().chrome
28     }
29     response = requests.get(url, headers=hearders, proxies=proxy)
30     print(response.text)
31 
32 def requests_ssl():
33     url = 'https://www.12306.cn/mormhweb/'
34     hearders = {
35         'User-agent': UserAgent().chrome
36     }
37     requests.packages.urllib3.disable_warnings()
38     response = requests.get(url, verify=False, headers=hearders)
39     response.encoding = 'utf-8'
40     print(response.text)
41 
42 def requests_cookies():
43     url = 'https://support.highgo.com/highgo_api/login'
44     hearders = {
45         'User-agent': UserAgent().chrome
46     }
47     form_data = {
48         'userName': '[email protected]',
49         'password': '039ac48bbf1bdb15e52eb8eb635dc13d'
50     }
51     session = requests.session()
52     response = session.post(url, headers=hearders, data=form_data)
53     print(response.text)
54     response = session.get('https://support.highgo.com/#/index')
55     print(response.text)
56 
57 
58 if __name__ == '__main__':
59     # requests_post()
60     # requests_get()
61     # requets_proxy()
62     # requests_ssl()
63     requests_cookies()

Selenium模拟浏览器

 1 # 安装
 2 # pip3 install selenium
 3 # 功能:完全模拟浏览器访问网站
 4 # Chrome需要配合:chromedriver
 5 # https://blog.csdn.net/weixin_45109684/article/details/117650036
 6 
 7 # PhantomJS
 8 
 9 # Chromedriver 安装
10 # 1.安装Chrome,然后在[帮助]中查看版本
11 # 2.根据版本下载chromedriver   (https://registry.npmmirror.com/binary.html?path=chromedriver/)
12 # 3.下载后的chromedriver解压后,copy到/usr/bin/目录下边
13 
14 from selenium import webdriver
15 from selenium.webdriver.common.by import By
16 
17 browser = webdriver.Chrome()
18 browser.get('https://www.baidu.com')
19 # By.XPATH 模式就是使用etree.xpath
20 # browser.find_element(By.XPATH, r"//input[@id='kw']").send_keys('看一百次夜空里的深蓝')
21 # find_elements是查找多个
22 # 要注意的是,find_element查找不到的时候会报错
23 browser.find_element(By.ID, 'kw').send_keys('看一百次夜空里的深蓝')
24 browser.find_element(By.ID, 'su').click()
25 # 执行js代码操作滚动条
26 # js = r"var q = document.getElementById('id').scrollTop = 0"
27 js = r"var q = document.documentElement.scrollTop = 1000"
28 # js = r"document.body.scrollTop=0"
29 browser.execute_script(js)
30 print(browser.page_source)
31 browser.close()

pytesseract验证码识别

1 from PIL import Image
2 import pytesseract
3 # Tesseract Ubuntu 安装 : https://tesseract-ocr.github.io/tessdoc/Installation.html
4 # sudo apt install tesseract-ocr
5 # sudo apt install libtesseract-dev
6 # github 地址: https://github.com/tesseract-ocr/tesseract
7 imageObject=Image.open('./lll.png')
8 print (imageObject)
9 print (pytesseract.image_to_string(imageObject))

 

 

 

 

 

 

 

标签:url,selenium,urllib,headers,pytesseract,print,import,requests,response
From: https://www.cnblogs.com/watermeloncode/p/17584900.html

相关文章

  • java selenium 截取图片
    JavaSelenium截取图片在自动化测试中,截图是一个非常重要的功能。当测试遇到问题时,截图可以提供有价值的信息来帮助我们分析问题的原因。JavaSelenium提供了一个简单而强大的方法来实现截图功能。本文将介绍如何使用JavaSelenium来截取网页或应用程序的屏幕截图。准备工作在......
  • java selenium po模式
    JavaSeleniumPO模式引言在软件测试领域,自动化测试是一个关键的环节。自动化测试可以提高测试效率、降低测试成本,并且可以帮助团队更好地管理测试用例。Selenium是一个强大的自动化测试工具,可以用于测试Web应用程序。在使用Selenium进行自动化测试时,我们可以采用PageObject(PO)......
  • 【selenium】常用操作文档
    1、官网文档2.开始-selenium-python中文文档  参考链接:selenium中文文档_誓约·追光者的博客-CSDN博客_selenium中文文档......
  • Tesseract开源的OCR工具及python pytesseract安装使用
    一、介绍Tesseract是一款由Google赞助的开源OCR。pytesseract是python包装器,它为可执行文件提供了pythonicAPI。Tesseract已经有30年历史,开始它是惠普实验室的一款专利软件,在2005年后由Google接手并进一步开发和完善。Tesseract支持多种语言文字的检测和识别,包括中文、英......
  • Python的OCR工具pytesseract解决TesseractNotFoundError: tesseract is not installed
    pytesseract是基于Python的OCR工具,底层使用的是Google的Tesseract-OCR引擎,支持识别图片中的文字,支持jpeg,png,gif,bmp,tiff等图片格式。如何安装使用请看我的上一篇。在使用pytesseract打开图片是遇到没有找到文件解决pytesseract.pytesseract.TesseractNotFoundError:te......
  • pytesseract and ddddocr
    一.pytesseract1.简介 Pytesseract是一个Python库,用于将图像中的文本转换为可编辑的字符串。它是基于Google的TesseractOCR引擎开发的。Tesseract是一个开源的OCR引擎,能够识别超过100种语言的文字。Pytesseract简化了与Tesseract的集成过程,并提供了一个简单的API,使得在Python......
  • selenium之get_attribute获取元素属性
    get_attribute获取元素属性的一些细节如:test1.html<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>获取属性</title></head><body><inputtype="text"name="......
  • [爬虫]2.2.1 使用Selenium库模拟浏览器操作
    Selenium是一个非常强大的工具,用于自动化Web浏览器的操作。它可以模拟真实用户的行为,如点击按钮,填写表单,滚动页面等。由于Selenium可以直接与浏览器交互,所以它可以处理那些需要JavaScript运行的动态网页。安装Selenium首先,我们需要安装Selenium库。你可以使用pip命令来安装:pip......
  • 1、使用python+selenium+requests在百度批量下载图片
    importosimportreimporttimeimportrequestsfromseleniumimportwebdriverfromselenium.webdriver.common.byimportByclasspicturesDowload():def__init__(self,insearch,savepath=os.path.dirname(__file__),timeout=10):self.insearch=i......
  • selenium元素操作无效的解决
    1.首先确认元素定位是否正确可以尝试打印元素数据,看是否正确捕获元素,若是未捕获,尝试其他定位方式*.getText()2)考虑是否不在同一个iframe->切换到同一个iframe3)元素遮盖,未显示等->滚动到正确位置(一般滚动到元素出现,如果是滚动到元素本身出现不行,可以尝试滚动到其他元素出现......