zoukankan      html  css  js  c++  java
  • 通过win32api与win32con模拟按键精灵爬取中国商标网数据

    # -*- coding: utf-8 -*-
    # Author: Yakuho
    # Date  : 2019/8/8
    import asyncio
    import os
    import time
    import random
    from selenium import webdriver
    import button
    import win32api
    import win32con
    import queue
    # id_q = (x for x in range(int(input('想要爬取的起始注册号:')), int(input('想要爬取的最后注册号:')) + 1))
    info_q = queue.Queue()
    
    
    class Detail:
        def __init__(self):
            self.url = 'http://sbj.cnipa.gov.cn/'
            self.executable_path = os.path.abspath('chromedriver.exe')
            self.options = webdriver.ChromeOptions()
            self.options.add_argument('--disable-gpu')
            self.options.add_experimental_option('excludeSwitches', ['enable-automation'])
            # self.options.add_argument('proxy-server=' + proxy)
            self.browser = webdriver.Chrome(executable_path=self.executable_path, options=self.options)
            self.position = (0, 0)
    
        async def brand_check(self):
            self.browser.set_script_timeout(4)
            self.browser.set_page_load_timeout(4)
            try:
                self.browser.get(self.url)
            except:
                pass
            win32api.SetCursorPos((0, 0))
            # 商标查询
            for i in button.button1:
                win32api.SetCursorPos(i)
                time.sleep(random.randint(2, 4) * 0.001)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
            self.browser.close()  # 关闭第一个页面
            await asyncio.sleep(4)
            # 我同意
            for i in button.button2:
                win32api.SetCursorPos(i)
                time.sleep(random.randint(2, 4) * 0.001)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
            await asyncio.sleep(4)
            # 综合查询
            for i in button.button3:
                win32api.SetCursorPos(i)
                time.sleep(random.randint(2, 4) * 0.001)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
            await asyncio.sleep(6)
    
        async def main(self):
            await self.brand_check()
            infos = ['135001', '1350001']
            for info in infos:
                # info = id_q.get()
                # 点击输入框
                win32api.SetCursorPos((426, 415))
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
                # 清空文本框
                win32api.keybd_event(17, 0, 0, 0)
                win32api.keybd_event(65, 0, 0, 0)
                win32api.keybd_event(17, 0, win32con.KEYEVENTF_KEYUP, 0)
                win32api.keybd_event(65, 0, win32con.KEYEVENTF_KEYUP, 0)
                win32api.keybd_event(8, 0, 0, 0)
                win32api.keybd_event(8, 0, win32con.KEYEVENTF_KEYUP, 0)
                # 输入识别号
                for i in info:
                    win32api.keybd_event(ord(i), 0, 0, 0)
                    win32api.keybd_event(ord(i), 0, win32con.KEYEVENTF_KEYUP, 0)
                # 点击查询
                for i in button.button4_click:
                    win32api.SetCursorPos(i)
                    time.sleep(random.randint(2, 4) * 0.001)
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
                # 点击查询的项目
                win32api.SetCursorPos((126, 202))  # 输入框位置
                await asyncio.sleep(4)
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
                win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
                if self.browser.window_handles[-2] == 2:
                    self.browser.switch_to.window(self.browser.window_handles[-1])
                    self.browser.close()
                else:
                    await asyncio.sleep(4)
                    self.browser.switch_to.window(self.browser.window_handles[-2])
                    print(self.browser.page_source)
                    # info_q.put(self.browser.page_source)
                    self.browser.close()
                    self.browser.switch_to.window(self.browser.window_handles[-1])
                    self.browser.close()
    
    
    if __name__ == "__main__":
        progress1 = Detail()
        # progress2 = Detail()
        tasks = [progress1.main()]
        asyncio.get_event_loop().run_until_complete(asyncio.gather(*tasks))
    # -*- coding: utf-8 -*-
    # Author: Yakuho
    # Date  : 2019/8/9
    button1 = [(0, 1),  (0, 2),  (0, 3),  (0, 5),  (0, 9),  (1, 12),  (1, 16),  (2, 18),  (2, 20),  (2, 21),  (2, 24),
               (2, 25),  (2, 26),  (2, 29),  (2, 32),  (3, 35),  (3, 39),  (3, 41),  (5, 45),  (6, 51),  (7, 55),
               (8, 58),  (9, 62),  (11, 70),  (11, 71),  (14, 78),  (16, 82),  (22, 89),  (23, 96),  (27, 101),
               (28, 106),  (30, 110),  (31, 113),  (32, 118),  (34, 124),  (37, 130),  (40, 137),  (43, 144),
               (47, 153),  (50, 160),  (53, 168),  (57, 175),  (62, 183),  (66, 189),  (69, 196),  (71, 200),
               (75, 206),  (78, 212),  (82, 218),  (86, 227),  (86, 229),  (87, 233),  (89, 240),  (91, 247),
               (96, 253),  (101, 261),  (105, 268),  (108, 274),  (112, 282),  (117, 289),  (124, 297),  (129, 306),
               (133, 315),  (139, 324),  (144, 333),  (149, 342),  (155, 353),  (160, 362),  (164, 371),  (168, 381),
               (170, 388),  (173, 397),  (175, 403),  (177, 410),  (181, 419),  (185, 428),  (187, 435),  (191, 442),
               (193, 450),  (197, 459),  (202, 468),  (206, 477),  (209, 485),  (211, 496),  (213, 504),  (215, 512),
               (218, 520),  (220, 529),  (224, 538),  (228, 547),  (230, 554),  (233, 563),  (235, 570),  (237, 577),
               (239, 583),  (240, 588),  (241, 595),  (243, 604),  (244, 611),  (244, 618),  (244, 626),  (244, 631),
               (247, 639),  (248, 640),  (249, 643),  (250, 646),  (252, 654),  (252, 655),  (256, 667),  (256, 671),
               (256, 677),  (256, 687),  (256, 690),  (256, 695),  (256, 699),  (259, 703),  (263, 708),  (264, 713),
               (267, 717),  (268, 723),  (271, 727),  (272, 734)]
    button2 = [(270, 743), (271, 743), (271, 743), (272, 743), (273, 743), (274, 743), (275, 743), (278, 742), (281, 742),
               (281, 742), (284, 741), (290, 740), (293, 739), (294, 739), (294, 739), (298, 738), (302, 736), (306, 735),
               (308, 734), (310, 734), (310, 734), (313, 734), (316, 734), (318, 734), (318, 734), (321, 734), (324, 734),
               (326, 734), (329, 733), (332, 732), (337, 731), (342, 730), (342, 730), (346, 730), (350, 728), (355, 727),
               (355, 727), (355, 727), (359, 727), (362, 726), (366, 726), (371, 725), (375, 725), (375, 725), (379, 725),
               (382, 724), (386, 723), (390, 723), (395, 722), (395, 722), (398, 722), (401, 722), (402, 721), (406, 720),
               (409, 720), (411, 720), (411, 720), (413, 719), (416, 718), (419, 718), (424, 718), (424, 718), (427, 718),
               (430, 717), (434, 716), (437, 715), (437, 715), (440, 714), (441, 714), (442, 714), (445, 714), (445, 714),
               (449, 713), (450, 713), (453, 713), (457, 712), (459, 712), (459, 712), (462, 712), (463, 711), (465, 711),
               (467, 710), (470, 709), (471, 708), (471, 708), (474, 708), (477, 707), (481, 706), (482, 706), (482, 706),
               (482, 706), (483, 706), (485, 705), (486, 704), (486, 704), (488, 702), (489, 702), (490, 702), (491, 702),
               (494, 700), (494, 699), (495, 699), (495, 699), (498, 698), (498, 698), (498, 698), (498, 697), (498, 697),
               (499, 696), (499, 696), (502, 694), (502, 694), (502, 694), (504, 694), (506, 693), (506, 693), (509, 692),
               (509, 690), (509, 690), (509, 690), (509, 690), (509, 690), (509, 690), (509, 690), (509, 690), (509, 690),
               (509, 690), (510, 690), (510, 690), (511, 690), (511, 690), (512, 688), (512, 688), (513, 687), (513, 687),
               (513, 687), (513, 687), (513, 687), (513, 687), (513, 687), (513, 687), (513, 687)]
    button3 = [(512, 682), (514, 678), (514, 676), (515, 674), (517, 670), (518, 668), (518, 668), (519, 668), (519, 667),
               (520, 663), (521, 662), (522, 660), (523, 658), (523, 658), (523, 655), (525, 654), (526, 651), (526, 647),
               (527, 642), (527, 642), (528, 641), (528, 635), (529, 634), (531, 629), (531, 625), (532, 622), (532, 622),
               (533, 618), (534, 615), (534, 611), (534, 610), (535, 606), (535, 606), (536, 602), (536, 598), (537, 595),
               (538, 591), (538, 590), (538, 590), (538, 587), (538, 582), (538, 578), (538, 577), (538, 573), (540, 569),
               (541, 567), (541, 567), (541, 564), (541, 562), (541, 561), (542, 555), (542, 554), (542, 554), (542, 551),
               (542, 549), (542, 546), (542, 546), (542, 543), (543, 541), (543, 541), (543, 538), (545, 536), (545, 534),
               (545, 531), (546, 530), (546, 529), (546, 526), (546, 526), (546, 523), (546, 521), (546, 518), (547, 517),
               (548, 514), (548, 514), (548, 512), (548, 511), (548, 509), (548, 506), (548, 503), (548, 503), (548, 499),
               (549, 498), (549, 496), (549, 495), (550, 492), (550, 490), (550, 490), (550, 486), (550, 486), (550, 485),
               (550, 484), (550, 481), (550, 479), (550, 479), (550, 478), (550, 476), (551, 474), (551, 474), (551, 474),
               (551, 474), (551, 473), (551, 471), (552, 470), (552, 470), (552, 467), (552, 467), (552, 466), (552, 466),
               (552, 466), (553, 465), (553, 463), (553, 462), (554, 461)]
    button4_click = [(426, 415), (426, 420), (426, 420), (428, 425), (429, 427), (431, 431), (434, 433), (435, 437), (437, 440),
               (437, 440), (437, 440), (439, 446), (439, 451), (442, 455), (442, 460), (442, 460), (444, 462), (445, 465),
               (446, 467), (446, 470), (446, 470), (447, 473), (448, 476), (449, 481), (450, 484), (450, 485), (450, 485),
               (450, 486), (452, 490), (453, 492), (453, 493), (454, 494), (454, 494), (455, 495), (456, 497), (457, 500),
               (458, 500), (458, 500), (458, 502), (458, 504), (458, 505), (459, 506), (462, 510), (462, 510), (462, 512),
               (463, 515), (464, 518), (465, 521), (465, 521), (466, 522), (467, 524), (468, 527), (472, 530), (473, 531),
               (473, 531), (474, 534), (474, 535), (475, 538), (477, 540), (477, 541), (481, 546), (481, 546), (481, 549),
               (482, 552), (483, 554), (484, 555), (484, 555), (484, 558), (485, 559), (485, 560), (485, 562), (486, 564),
               (486, 564), (486, 566), (487, 568), (487, 569), (487, 571), (487, 571), (487, 573), (488, 575), (489, 579),
               (490, 585), (490, 585), (490, 586), (490, 592), (491, 595), (491, 598), (491, 600), (491, 600), (491, 602),
               (492, 604), (492, 608), (492, 610), (492, 610), (492, 613), (492, 616), (492, 619), (492, 621), (492, 623),
               (492, 623), (492, 626), (492, 628), (494, 630), (494, 633), (494, 634), (494, 634), (494, 634), (495, 637),
               (496, 638), (498, 640), (498, 640), (498, 641), (499, 642), (499, 642), (499, 642), (500, 644), (500, 644),
               (500, 644), (501, 645), (501, 645)]
    button4_check = [(501, 645), (501, 645), (500, 644), (500, 644), (500, 644), (499, 642), (499, 642), (499, 642),
                     (498, 641), (498, 640), (498, 640), (496, 638), (495, 637), (494, 634), (494, 634), (494, 634),
                     (494, 633), (494, 630), (492, 628), (492, 626), (492, 623), (492, 623), (492, 621), (492, 619),
                     (492, 616), (492, 613), (492, 610), (492, 610), (492, 608), (492, 604), (491, 602), (491, 600),
                     (491, 600), (491, 598), (491, 595), (490, 592), (490, 586), (490, 585), (490, 585), (489, 579),
                     (488, 575), (487, 573), (487, 571), (487, 571), (487, 569), (487, 568), (486, 566), (486, 564),
                     (486, 564), (485, 562), (485, 560), (485, 559), (484, 558), (484, 555), (484, 555), (483, 554),
                     (482, 552), (481, 549), (481, 546), (481, 546), (477, 541), (477, 540), (475, 538), (474, 535),
                     (474, 534), (473, 531), (473, 531), (472, 530), (468, 527), (467, 524), (466, 522), (465, 521),
                     (465, 521), (464, 518), (463, 515), (462, 512), (462, 510), (462, 510), (459, 506), (458, 505),
                     (458, 504), (458, 502), (458, 500), (458, 500), (457, 500), (456, 497), (455, 495), (454, 494),
                     (454, 494), (453, 493), (453, 492), (452, 490), (450, 486), (450, 485), (450, 485), (450, 484),
                     (449, 481), (448, 476), (447, 473), (446, 470), (446, 470), (446, 467), (445, 465), (444, 462),
                     (442, 460), (442, 460), (442, 455), (439, 451), (439, 446), (437, 440), (437, 440), (437, 440),
                     (435, 437), (434, 433), (431, 431), (429, 427), (428, 425), (426, 420), (426, 420), (426, 415)]
    button5 = [(329, 454),
    (330, 455),
    (332, 456),
    (334, 458),
    (335, 458),
    (337, 459),
    (338, 461),
    (340, 463),
    (342, 465),
    (342, 467),
    (344, 467),
    (344, 469),
    (345, 469),
    (345, 469),
    (345, 469),
    (345, 470),
    (345, 470),
    (347, 472),
    (348, 474),
    (350, 476),
    (351, 478),
    (351, 478),
    (352, 479),
    (353, 480),
    (353, 481),
    (355, 481),
    (355, 483),
    (357, 483),
    (359, 483),
    (361, 484),
    (363, 486),
    (365, 487),
    (365, 488),
    (366, 490),
    (367, 490),
    (369, 490),
    (369, 490),
    (369, 490),
    (371, 490),
    (373, 491),
    (375, 493),
    (376, 494),
    (379, 494),
    (380, 494),
    (381, 496),
    (381, 498),
    (381, 498),
    (381, 498),
    (381, 499),
    (383, 499),
    (384, 501),
    (385, 501),
    (385, 502),
    (388, 504),
    (388, 505),
    (389, 505),
    (390, 506),
    (390, 507),
    (390, 507),
    (392, 507),
    (392, 507),
    (392, 508),
    (393, 510),
    (393, 512),
    (393, 514),
    (393, 516),
    (395, 518),
    (395, 519),
    (396, 521),
    (396, 523),
    (396, 525),
    (397, 526),
    (397, 526),
    (399, 528),
    (401, 530),
    (401, 532),
    (402, 534),
    (402, 536),
    (404, 536),
    (404, 538),
    (405, 538),
    (406, 539),
    (407, 541),
    (409, 541),
    (409, 543),
    (411, 543),
    (412, 545),
    (413, 547),
    (414, 548),
    (414, 548),
    (415, 550),
    (417, 550),
    (418, 551),
    (418, 553),
    (418, 554),
    (419, 556),
    (421, 556),
    (422, 556),
    (423, 558),
    (425, 560),
    (426, 562),
    (428, 564),
    (430, 564),
    (432, 565),
    (433, 566),
    (434, 566),
    (435, 567),
    (437, 567),
    (439, 567),
    (441, 569),
    (443, 570),
    (443, 572),
    (445, 573),
    (445, 575),
    (445, 577),
    (445, 579),
    (447, 581),
    (447, 583),
    (449, 583),
    (449, 585),
    (452, 585),
    (453, 587),
    (453, 589),
    (453, 590),
    (453, 592),
    (456, 593),
    (457, 595),
    (458, 596),
    (459, 596),
    (461, 597),
    (462, 597),
    (464, 598),
    (464, 600),
    (464, 600),
    (464, 601),
    (466, 603),
    (468, 604),
    (470, 604),
    (471, 606),
    (471, 607),
    (471, 609),
    (473, 611),
    (475, 613),
    (477, 613),
    (477, 614),
    (479, 614),
    (481, 614),
    (483, 615),
    (484, 615),
    (484, 617),
    (485, 618),
    (486, 618),
    (486, 618),
    (487, 619),
    (487, 621),
    (488, 621),
    (488, 622),
    (488, 622),
    (489, 624),
    (489, 624),
    (490, 625),
    (490, 627),
    (490, 628),
    (492, 630),
    (493, 630),
    (494, 632),
    (494, 634),
    (494, 634),
    (495, 634),
    (495, 635),
    (497, 637),
    (497, 639),
    (499, 640),
    (500, 641),
    (500, 642),
    (502, 642),
    (504, 644),
    (506, 644),
    (508, 644),
    (508, 644),
    (508, 644),
    (510, 645),
    (511, 647),]
    这都是我对自己学习过程的理解,如有错误请指出!我算一个小白了。
  • 相关阅读:
    Matlab之画图
    Evaluation
    Matlab之文件读写
    Matlab之cell使用
    Windows装机指南
    C之文件读写
    Linux之用户管理
    linux和Windows下文本格式转换
    round()
    pow()
  • 原文地址:https://www.cnblogs.com/darwinli/p/11380994.html
Copyright © 2011-2022 走看看