├── README.md ├── cold_call.py ├── requirements.txt └── sites.json /README.md: -------------------------------------------------------------------------------- 1 | # Coldcalls & Messages 2 | 3 | ## 仅供学习交流,请勿用作其他用途。 4 | 5 | 本项目类似于轰炸机。
6 | 逻辑如下: 7 | - 使用手机号在留学、在线教育、装修等网站留下信息,则销售会主动不厌其烦地call此手机号。 8 | - 使用手机号注册、登录网站,则会收到短信验证码。 9 |
10 | 11 | ### 食用方式 12 | - 项目基于selenium,请下载对应版本chromedriver放于本项目下 13 | ```bash 14 | git clone https://github.com/broholens/coldcalls.git 15 | cd coldcalls 16 | pip install requirements.txt 17 | python cold_call.py 18 | ``` 19 | - **添加自己解析的网站**
20 | 编辑*sites.json*,按照解析规则添加关键字即可。**欢迎Pull-Request,提供更多网站的解析。**

21 | 解析规则如下: 22 | 23 | | 关键字 | 说明 | 示例 | 24 | | :-----: | :----: | :----: | 25 | | url | 网站url | https://qy.thea.cn/ | 26 | | rate | 网站每天请求次数。不填默认为1。电话类建议不填,短信类视网站规则填写 | 3 | 27 | | sleep_time | 访问网站后等待页面加载时间,不填默认为0 | 2 | 28 | | iframe | 需要切换的iframe,不切换则不填 | LR_miniframe | 29 | | preset | 请求到网站后,填写表单前需要做的操作。 没有则不填| | 30 | | username_path | 用户名填写,没有则不填 | | 31 | | phone_path | 手机号填写 | | 32 | | message_path | 留言填写,没有则不填 | | 33 | | password_path | 密码填写,没有则不填 | | 34 | | password_confirm_path | 密码确认填写,没有则不填 | | 35 | | submit_path | 提交表单按钮,没有则不填 | | 36 | | postset | 表单提交完后需要做的操作。 没有则不填| | 37 | | mode | 定位元素的模式,可选值[id、xpath、name、class_name、link_text],默认为xpath,调用selenium对应方法 | id | 38 | | value | 按照mode定位的关键字 | mobile | 39 | | type | 仅支持preset和postset,可选值[click、script],默认为click,执行点击操作;script则执行value对应的脚本,不必填mode字段 | script | 40 | 41 | - 示例 42 | ```json 43 | { 44 | "rate": 3, 45 | "sleep_time": 3, 46 | "url": "https://qy.thea.cn/", 47 | "iframe": "LR_miniframe", 48 | "preset": { 49 | "type": "click", 50 | "mode": "xpath", 51 | "value": "//li[@class=\"clearfix\"]/div/a[2]" 52 | }, 53 | "username_path": { 54 | "mode": "name", 55 | "value": "contact" 56 | }, 57 | "phone_path": { 58 | "mode": "name", 59 | "value": "mobile" 60 | }, 61 | "password_path": { 62 | "mode": "name", 63 | "value": "password" 64 | }, 65 | "password_confirm_path": { 66 | "mode": "name", 67 | "value": "password_confirm" 68 | }, 69 | "message_path": { 70 | "mode": "name", 71 | "value": "content" 72 | }, 73 | "submit_path": { 74 | "value": "//div[@class=\"qpform\"]//input[last()]" 75 | }, 76 | "postset": { 77 | "type": "script", 78 | "value": "FunLM10GetPrice()" 79 | } 80 | } 81 | ``` 82 | - 解析网站关键字执行顺序
83 | `url -> sleep_time -> iframe -> preset -> *_path -> postset` 84 | 85 | ### 已解析网站列表 86 | 87 | 1. [liuxue86](https://www.liuxue86.com/) 88 | 2. [北木](http://www.beimu.com/school/) 89 | 3. [伯乐](http://www.bole.com/registerPage) 90 | 4. [课工厂](http://www.kgc.cn/zhuanti/cpjh_pc.shtml) 91 | 5. [创思童](http://www.gemstonecn.com/consociation.php) 92 | 6. [诺达名师](http://qy.thea.cn/) 93 | 7. [掌门一对一](https://www.zhangmen.org/lp/sem) 94 | 8. [加盟1对1](http://zs.jiameng.com/goJmPriceBoard2.html) 95 | 9. [秦学100](http://fd1.qinxue100.com/index.html) 96 | 10. [英孚](https://www.ef.com.cn/englishfirst/kids/) 97 | 11. [趣趣abc](https://www.ququabc.com/offlinep.htm) 98 | 12. [乐宁](http://learning.learningedu.com.cn/) 99 | 13. [七彩星球](http://www.cctvqcxq.com/) 100 | 14. [昂立教育](http://www.onlychild.cn/) 101 | 15. [久伴英语](https://www.nicekid.com/register/nicekid-biteabc) 102 | 16. [51talk](http://www.51talk.com/landing/bdpz1_087737.html) 103 | 17. [山姆大叔少儿英语](http://www.unclesamedu.com/index.php) 104 | 18. [学而思](https://zt.xueersi.com/zaixian/pc-zhu-tiyanke/index.html) 105 | 19. [汤姆客](http://www.hellotom-edu.com/470) 106 | 20. [勤学教育](http://www.qinxue365.com/business/388.html) 107 | 21. [it61](http://www.it61.cn/coding-class/) 108 | 22. [傲梦](https://all-dream.com/) 109 | 23. [优学](http://www.ubxedu.com/course/) 110 | 24. [码高](http://www.magaoedu.cn/) 111 | 25. [小码王](http://www.xiaomawang.net/) 112 | 26. [有渔](http://www.youyucode.com/) 113 | 27. [达内](http://xa.ui.tedu.cn/baiduuipc/zh/) 114 | 28. [趣码](http://xw7c8v4rx7ajxxvj.mikecrm.com/kiMGSiQ) 115 | 29. [58登陆](https://passport.58.com/login) 116 | 30. [快递100登陆](https://sso.kuaidi100.com/sso/authorize.do) 117 | 31. [快递100注册](https://sso.kuaidi100.com/sso/reg.jsp) 118 | 32. [沪江](https://class.hujiang.com/) 119 | 33. [华图](http://v.huatu.com/newUser/reg.php) 120 | 34. [vipjr](https://www.vipjr.com/) 121 | 35. [千里马](http://www.qianlima.com/new/keywordzhuolu_invite.jsp) 122 | 36. [豆瓣](https://accounts.douban.com/passport/login?source=book) 123 | 37. [潇湘书院](https://www.xxsy.net/Reg) 124 | 38. [智能电视](https://www.znds.com/member.php?mod=zndscomregister) 125 | 39. [美女时钟](http://reg.timemm.com/user/register) 126 | 40. [爱空间](https://tj.ikongjian.com/reservation/index) 127 | 41. [to8to](https://www.to8to.com/yezhu/) 128 | 42. [齐家](https://www.jia.com/zx/other/semtf/) 129 | 43. [装修一族](http://beijing.zhuangxiuyizu.cn/) 130 | 44. [居云装潢](http://www.sh-juyun.com/) 131 | 45. [保家](http://bj.xtuan.com/zhuangxiu/) 132 | 46. [大鱼装修](https://www.idayu.cn/) 133 | 47. [东易日盛](https://shenzhen.dyrs.com.cn/) 134 | 48. [百度楼市](http://baiduloushi.com/plus/view.php?aid=653) 135 | 49. [升学](http://www.sxxxpx.cn/mba/wps/p/002QG/) 136 | 50. [百广荟](http://wap.gbhui.com/captcha_login.html) 137 | 51. [haval](https://2car.haval.com.cn/quicklogin) 138 | 52. [小米](https://account.xiaomi.com/pass/serviceLogin) 139 | 53. [华尔街英语](https://wse.com.cn/zh/register/) 140 | 54. [米哈游](https://user.mihoyo.com/#/register/mobile?cb_route=%2Faccount%2Fhome) 141 | 55. [薯宝](http://www.zgtzmls.com/Home/User/reg.html) 142 | 56. [gsbankmall](https://www.gsbankmall.com/index.php/Wap/index/userhome.html) 143 | 57. [story-mark](https://www.story-mark.com/login/code) 144 | 58. [前程无忧](https://login.51job.com/login.php?isjump=0&loginway=1&lang=c&from_domain=i&url=) 145 | 59. [楼事](http://passport.360eol.com/pc/passwordOrCodeLogin?from=http%3A%2F%2Fnanjing.360loushi.com%2F&appId=AOqn8WGeXHGZN23dF) 146 | 60. [infoq](https://account.geekbang.org/infoq/signup?redirect=https%3A%2F%2Fwww.infoq.cn%2Farticle%2FLZE%2aob52bASspjYu4c6Z) 147 | 61. [tcl](http://user.tcl.com/proxy/login) 148 | 62. [拼多多商家](https://ims.pinduoduo.com/plus/) 149 | 63. [简书重置密码](https://www.jianshu.com/users/password/mobile_reset) 150 | 65. [无忧精英](https://login.51job.com/login.php?isjump=0&loginway=1&lang=c&from_domain=i&url=http%3A%2F%2Fwww.51job.com%2F) 151 | 168 | -------------------------------------------------------------------------------- /cold_call.py: -------------------------------------------------------------------------------- 1 | import random 2 | import time 3 | 4 | from loguru import logger 5 | from faker import Faker 6 | from pyfunctions import fun 7 | from selenium.common.exceptions import TimeoutException 8 | from selenium.webdriver.common.by import By 9 | 10 | 11 | logger.add('call.log', rotation='20 MB') 12 | 13 | 14 | class ColdCall: 15 | # 密码只要符合网站注册密码要求即可 16 | password = 'aiahdia6' 17 | # 映射配置文件中定位元素的模式 18 | mode_map = { 19 | 'id': By.ID, 20 | 'xpath': By.XPATH, 21 | 'name': By.NAME, 22 | 'class_name': By.CLASS_NAME, 23 | 'link_text': By.LINK_TEXT 24 | } 25 | 26 | def __init__(self, phone_number, name=''): 27 | self.driver = fun.make_driver(load_img=True) 28 | self.driver.set_page_load_timeout(30) 29 | self.driver.set_script_timeout(30) 30 | self.phone_number = phone_number 31 | self.name = name or Faker('zh_CN').name() 32 | 33 | def tease_site(self, site): 34 | """根据配置点击网站进行注册/登录""" 35 | self.driver.get(site['url']) 36 | # 获取site字段 37 | username, password = site.get('username_path'), site.get('password_path') 38 | phone_path, submit_path = site['phone_path'], site.get('submit_path') 39 | iframe, password_confirm = site.get('iframe'), site.get('password_confirm_path') 40 | sleep_time, message = float(site.get('sleep_time', 0)), site.get('message_path') 41 | # 不填写留言内容默认使用手机号 42 | message_content = message and message.get('msg', self.phone_number) 43 | preset, postset = site.get('preset'), site.get('postset') 44 | # 等待表单页面加载完全 45 | sleep_time and time.sleep(sleep_time) 46 | iframe and self.driver.switch_to.frame(iframe) 47 | preset and self._parse_type(preset) 48 | # 填写表单 49 | self._send_optional_value(username, self.name) 50 | self.send_phone_number(phone_path) 51 | fun.random_sleep(3) 52 | self._send_optional_value(password, self.password) 53 | fun.random_sleep(3) 54 | self._send_optional_value(password_confirm, self.password) 55 | fun.random_sleep(3) 56 | self._send_optional_value(message, message_content) 57 | fun.random_sleep(3) 58 | submit_path and self._find_element(submit_path).click() 59 | postset and self._parse_type(postset) 60 | fun.random_sleep(2) 61 | # 处理alert 62 | try: 63 | alert = self.driver.switch_to.alert() 64 | alert.accept() 65 | except: 66 | pass 67 | fun.random_sleep(60) 68 | 69 | def send_phone_number(self, phone_path): 70 | """逐个字符输入手机号""" 71 | time.sleep(1) 72 | self._find_element(phone_path).clear() 73 | for i in range(11): 74 | self._find_element(phone_path).send_keys(self.phone_number[i]) 75 | fun.random_sleep(0.3) 76 | 77 | def _parse_type(self, item): 78 | """解析preset和postset字段,执行点击命令/脚本""" 79 | set_type = item.get('type', 'click') 80 | if set_type == 'click': 81 | self._find_element(item).click() 82 | elif set_type == 'script': 83 | self.driver.execute_script(item['value']) 84 | time.sleep(0.2) 85 | 86 | @staticmethod 87 | def _load_sites(verify_code_only=False): 88 | """ 89 | 加载配置文件,通过rate字段区分短信/电话 90 | :param verify_code_only: 只返回验证码 91 | :return: 需要请求的网站 92 | """ 93 | sites = fun.load_json_file("sites.json") 94 | rate_sites = [(site, int(site['rate'])) for site in sites if 'rate' in site] 95 | if verify_code_only: 96 | sites = [] 97 | for site in rate_sites: 98 | sites.extend([site[0]] * site[1]) 99 | random.shuffle(sites) 100 | return sites 101 | 102 | for site in rate_sites: 103 | sites.extend([site[0]] * (site[1]-1)) 104 | random.shuffle(sites) 105 | return sites 106 | 107 | def _parse_mode(self, item): 108 | """解析配置文件中的mode,默认为xpath""" 109 | mode = item.get('mode', 'xpath') 110 | return self.mode_map[mode] 111 | 112 | def _find_element(self, item): 113 | """对driver.find_element的封装""" 114 | return self.driver.find_element(self._parse_mode(item), item['value']) 115 | 116 | def _send_optional_value(self, key, value): 117 | """对于可能存在的值进行填写""" 118 | if key: 119 | self._find_element(key).send_keys(value) 120 | 121 | def run(self, verify_code_only=False): 122 | # self.tease_site(fun.load_json_file('sites.json')[-1]) 123 | # sites = fun.load_json_file("sites.json")[-2:] 124 | sites = self._load_sites(verify_code_only) 125 | for site in sites: 126 | try: 127 | self.tease_site(site) 128 | logger.info(f"[SUCCESS] {site['url']}") 129 | except TimeoutException: 130 | try: 131 | self.driver.refresh() 132 | except: 133 | logger.info(f"[ERROR] {site['url']}") 134 | except: 135 | logger.info(f"[ERROR] {site['url']}") 136 | 137 | self.driver.quit() 138 | 139 | 140 | if __name__ == '__main__': 141 | cc = ColdCall("") 142 | cc.run() 143 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pyfunctions~=2020.6.17.13.47.45 2 | loguru~=0.5.1 3 | Faker~=4.1.0 4 | selenium~=3.141.0 -------------------------------------------------------------------------------- /sites.json: -------------------------------------------------------------------------------- 1 | [ 2 | { 3 | "url": "https://www.liuxue86.com/", 4 | "phone_path": { 5 | "value": "//li/form[@class=\"guestbook-fixed\"]/input" 6 | }, 7 | "submit_path": { 8 | "value": "//li/form[@class=\"guestbook-fixed\"]/button" 9 | }, 10 | "sleep_time": 2 11 | }, 12 | { 13 | "url": "http://www.beimu.com/school/", 14 | "preset": { 15 | "type": "click", 16 | "value": "//li[@class=\"clearfix\"]/div/a[2]" 17 | }, 18 | "username_path": { 19 | "mode": "id", 20 | "value": "LM10ContactID" 21 | }, 22 | "phone_path": { 23 | "mode": "id", 24 | "value": "LM10PhoneID" 25 | }, 26 | "postset": { 27 | "type": "script", 28 | "value": "FunLM10GetPrice()" 29 | } 30 | }, 31 | { 32 | "url": "http://www.bole.com/registerPage", 33 | "username_path": { 34 | "mode": "id", 35 | "value": "yonghu" 36 | }, 37 | "phone_path": { 38 | "mode": "id", 39 | "value": "shouji" 40 | }, 41 | "submit_path": { 42 | "value": "//a[@id=\"sub\"]" 43 | } 44 | }, 45 | { 46 | "url": "http://www.kgc.cn/zhuanti/cpjh_pc.shtml", 47 | "username_path": { 48 | "mode": "id", 49 | "value": "userName" 50 | }, 51 | "phone_path": { 52 | "mode": "id", 53 | "value": "tel" 54 | }, 55 | "submit_path": { 56 | "mode": "id", 57 | "value": "btn-ty" 58 | } 59 | }, 60 | { 61 | "url": "http://www.gemstonecn.com/consociation.php", 62 | "iframe": "LR_miniframe", 63 | "preset": { 64 | "type": "script", 65 | "value": "showtel1()" 66 | }, 67 | "phone_path": { 68 | "value": "//div[@class=\"telephone\"]/input[1]" 69 | }, 70 | "submit_path": { 71 | "value": "//div[@class=\"telephone\"]/input[2]" 72 | }, 73 | "sleep_time": 3 74 | }, 75 | { 76 | "url": "https://qy.thea.cn/", 77 | "username_path": { 78 | "mode": "name", 79 | "value": "contact" 80 | }, 81 | "phone_path": { 82 | "mode": "name", 83 | "value": "mobile" 84 | }, 85 | "message_path": { 86 | "mode": "name", 87 | "value": "content" 88 | }, 89 | "submit_path": { 90 | "value": "//div[@class=\"qpform\"]//input[last()]" 91 | } 92 | }, 93 | { 94 | "rate": 3, 95 | "url": "https://www.zhangmen.com/lp/sem", 96 | "username_path": { 97 | "mode": "id", 98 | "value": "s-name" 99 | }, 100 | "phone_path": { 101 | "mode": "id", 102 | "value": "stu_mobile1" 103 | }, 104 | "submit_path": { 105 | "mode": "id", 106 | "value": "pcheaderbtn2" 107 | } 108 | }, 109 | { 110 | "url": "http://zs.jiameng.com/goJmPriceBoard2.html", 111 | "username_path": { 112 | "mode": "id", 113 | "value": "txtName" 114 | }, 115 | "phone_path": { 116 | "mode": "id", 117 | "value": "txtTel" 118 | }, 119 | "submit_path": { 120 | "mode": "id", 121 | "value": "imgBtnUp" 122 | } 123 | }, 124 | { 125 | "url": "http://fd1.qinxue100.com/index.html", 126 | "username_path": { 127 | "mode": "id", 128 | "value": "name" 129 | }, 130 | "phone_path": { 131 | "mode": "id", 132 | "value": "tel" 133 | }, 134 | "submit_path": { 135 | "mode": "name", 136 | "value": "submit" 137 | } 138 | }, 139 | { 140 | "url": "https://www.ef.com.cn/englishfirst/kids/", 141 | "phone_path": { 142 | "mode": "name", 143 | "value": "mobile" 144 | }, 145 | "submit_path": { 146 | "value": "//form[contains(@class, \"ef-form\")]/div[2]/div/div[2]/a" 147 | } 148 | }, 149 | { 150 | "url": "https://www.ququabc.com/offlinep.htm", 151 | "username_path": { 152 | "mode": "name", 153 | "value": "username" 154 | }, 155 | "phone_path": { 156 | "mode": "id", 157 | "value": "mobile" 158 | }, 159 | "submit_path": { 160 | "mode": "class_name", 161 | "value": "submit" 162 | } 163 | }, 164 | { 165 | "url": "http://learning.learningedu.com.cn/", 166 | "phone_path": { 167 | "mode": "id", 168 | "value": "Tel" 169 | }, 170 | "submit_path": { 171 | "mode": "id", 172 | "value": "pctest01" 173 | } 174 | }, 175 | { 176 | "url": "http://www.cctvqcxq.com/", 177 | "username_path": { 178 | "mode": "id", 179 | "value": "name" 180 | }, 181 | "phone_path": { 182 | "mode": "id", 183 | "value": "mobile" 184 | }, 185 | "message_path": { 186 | "mode": "id", 187 | "value": "area", 188 | "msg": "上海" 189 | }, 190 | "submit_path": { 191 | "value": "//span[@class=\"ant-form-item-children\"]/button" 192 | } 193 | }, 194 | { 195 | "url": "http://www.onlychild.cn/", 196 | "phone_path": { 197 | "mode": "id", 198 | "value": "mobile" 199 | }, 200 | "submit_path": { 201 | "mode": "id", 202 | "value": "btnSubmit" 203 | } 204 | }, 205 | { 206 | "rate": 3, 207 | "url": "https://www.nicekid.com/register/nicekid-biteabc", 208 | "phone_path": { 209 | "mode": "name", 210 | "value": "iphone" 211 | }, 212 | "submit_path": { 213 | "value": "//a[contains(@class, \"get-code\")]" 214 | } 215 | }, 216 | { 217 | "rate": 3, 218 | "url": "http://www.51talk.com/landing/bdpz1_087737.html", 219 | "preset": { 220 | "mode": "class_name", 221 | "value": "btn-show" 222 | }, 223 | "phone_path": { 224 | "mode": "name", 225 | "value": "mobile" 226 | }, 227 | "submit_path": { 228 | "value": "//button[contains(@class, \"sendBtn\")]" 229 | } 230 | }, 231 | { 232 | "url": "http://www.unclesamedu.com/index.php", 233 | "phone_path": { 234 | "mode": "id", 235 | "value": "morder_tel" 236 | }, 237 | "username_path": { 238 | "mode": "id", 239 | "value": "morder_name" 240 | }, 241 | "submit_path": { 242 | "mode": "id", 243 | "value": "btn" 244 | } 245 | }, 246 | { 247 | "rate": 3, 248 | "url": "https://zt.xueersi.com/zaixian/pc-zhu-tiyanke/index.html", 249 | "phone_path": { 250 | "mode": "id", 251 | "value": "phone" 252 | }, 253 | "submit_path": { 254 | "mode": "id", 255 | "value": "phone-code-bt" 256 | } 257 | }, 258 | { 259 | "url": "http://www.hellotom-edu.com/470", 260 | "phone_path": { 261 | "mode": "id", 262 | "value": "iphone" 263 | }, 264 | "username_path": { 265 | "mode": "id", 266 | "value": "name" 267 | }, 268 | "submit_path": { 269 | "mode": "class_name", 270 | "value": "jms_tj" 271 | } 272 | }, 273 | { 274 | "url": "https://www.qinxue365.com/business/388.html", 275 | "phone_path": { 276 | "mode": "name", 277 | "value": "#Tel" 278 | }, 279 | "username_path": { 280 | "mode": "name", 281 | "value": "#Name" 282 | }, 283 | "submit_path": { 284 | "mode": "id", 285 | "value": "sub" 286 | } 287 | }, 288 | { 289 | "url": "http://www.it61.cn/coding-class/", 290 | "phone_path": { 291 | "value": "//div[@class=\"phNB\"]/input" 292 | }, 293 | "submit_path": { 294 | "value": "//div[@class=\"tijiao\"]" 295 | } 296 | }, 297 | { 298 | "url": "https://all-dream.com/", 299 | "phone_path": { 300 | "value": "//input[@class=\"ant-input\"][2]" 301 | }, 302 | "username_path": { 303 | "value": "//input[@class=\"ant-input\"][1]" 304 | }, 305 | "submit_path": { 306 | "value": "//nav[@class=\"bottom-fixed-bar\"]/div/button" 307 | } 308 | }, 309 | { 310 | "url": "http://www.ubxedu.com/course/", 311 | "iframe": "LR_miniframe", 312 | "preset": { 313 | "type": "script", 314 | "value": "showtel1()" 315 | }, 316 | "phone_path": { 317 | "mode": "id", 318 | "value": "tel1" 319 | }, 320 | "submit_path": { 321 | "mode": "id", 322 | "value": "telbtn" 323 | }, 324 | "sleep_time": 3 325 | }, 326 | { 327 | "url": "https://www.magaoedu.com/", 328 | "phone_path": { 329 | "mode": "id", 330 | "value": "phone" 331 | }, 332 | "username_path": { 333 | "mode": "id", 334 | "value": "name" 335 | }, 336 | "message_path": { 337 | "mode": "id", 338 | "value": "age", 339 | "msg": "上海" 340 | }, 341 | "submit_path": { 342 | "mode": "id", 343 | "value": "save" 344 | } 345 | }, 346 | { 347 | "rate": 3, 348 | "url": "https://sso.kuaidi100.com/sso/reg.jsp", 349 | "phone_path": { 350 | "mode": "id", 351 | "value": "name" 352 | }, 353 | "submit_path": { 354 | "mode": "id", 355 | "value": "send" 356 | } 357 | }, 358 | { 359 | "url": "http://www9.53kf.com/webCompany.php?arg=10135712&style=4", 360 | "username_path": { 361 | "mode": "id", 362 | "value": "ly_name" 363 | }, 364 | "phone_path": { 365 | "mode": "id", 366 | "value": "ly_mobile" 367 | }, 368 | "submit_path": { 369 | "mode": "id", 370 | "value": "submit_lword" 371 | } 372 | }, 373 | { 374 | "rate": 3, 375 | "url": "https://adm.youyucode.com/appointment.html?source=n1", 376 | "phone_path": { 377 | "value": "//*[@id=\"main-container\"]/div/form/div[1]/div[5]/div/div/input" 378 | }, 379 | "submit_path": { 380 | "value": "//*[@id=\"main-container\"]/div/form/div[1]/div[5]/div/div/div/button" 381 | } 382 | }, 383 | { 384 | "url": "http://xa.ui.tedu.cn/baiduuipc/zh", 385 | "phone_path": { 386 | "mode": "class_name", 387 | "value": "lxb-cb-input" 388 | }, 389 | "submit_path": { 390 | "mode": "class_name", 391 | "value": "lxb-cb-input-btn" 392 | } 393 | }, 394 | { 395 | "url": "http://xw7c8v4rx7ajxxvj.mikecrm.com/kiMGSiQ", 396 | "username_path": { 397 | "value": "//*[@id=\"201741259\"]/div[2]/div/div[1]/input" 398 | }, 399 | "message_path": { 400 | "value": "//*[@id=\"201742454\"]/div[2]/div/div/input", 401 | "msg": 10 402 | }, 403 | "phone_path": { 404 | "value": "//*[@id=\"201741261\"]/div[2]/div/div/div/input" 405 | }, 406 | "submit_path": { 407 | "mode": "class_name", 408 | "value": "fb_submitBtn" 409 | } 410 | }, 411 | { 412 | "rate": 3, 413 | "url": "https://passport.58.com/reg/", 414 | "phone_path": { 415 | "mode": "id", 416 | "value": "mask_body_item_phonenum" 417 | }, 418 | "submit_path": { 419 | "mode": "id", 420 | "value": "mask_body_item_getcode" 421 | } 422 | }, 423 | { 424 | "rate": 3, 425 | "url": "https://sso.kuaidi100.com/sso/authorize.do", 426 | "preset": { 427 | "mode": "class_name", 428 | "value": "bd" 429 | }, 430 | "phone_path": { 431 | "mode": "id", 432 | "value": "mobile" 433 | }, 434 | "submit_path": { 435 | "mode": "id", 436 | "value": "send" 437 | } 438 | }, 439 | { 440 | "rate": 3, 441 | "url": "https://class.hujiang.com/", 442 | "phone_path": { 443 | "mode": "name", 444 | "value": "tel" 445 | }, 446 | "submit_path": { 447 | "mode": "class_name", 448 | "value": "btn-get-code" 449 | } 450 | }, 451 | { 452 | "rate": 3, 453 | "url": "http://v.huatu.com/newUser/reg.php", 454 | "phone_path": { 455 | "mode": "id", 456 | "value": "phoneNumber" 457 | }, 458 | "submit_path": { 459 | "value": "//input[contains(@class, \"jq_sendcode\")]" 460 | } 461 | }, 462 | { 463 | "rate": 3, 464 | "url": "https://www.vipjr.com/", 465 | "preset": { 466 | "value": "//div[contains(@class, \"handle_register\")]" 467 | }, 468 | "phone_path": { 469 | "mode": "name", 470 | "value": "nation_phone" 471 | }, 472 | "submit_path": { 473 | "mode": "class_name", 474 | "value": "v-jr-btn" 475 | } 476 | }, 477 | { 478 | "rate": 3, 479 | "url": "http://www.qianlima.com/new/keywordzhuolu_invite.jsp", 480 | "phone_path": { 481 | "mode": "class_name", 482 | "value": "phone" 483 | }, 484 | "submit_path": { 485 | "value": "//p[contains(@class, \"yzm\")]" 486 | } 487 | }, 488 | { 489 | "rate": 3, 490 | "url": "https://hi.codemao.cn/v2", 491 | "phone_path": { 492 | "mode": "class_name", 493 | "value": "index__input___1LXgD" 494 | }, 495 | "submit_path": { 496 | "mode": "class_name", 497 | "value": "index__red_button___2BvRL" 498 | } 499 | }, 500 | { 501 | "rate": 3, 502 | "url": "https://accounts.douban.com/passport/login?source=book", 503 | "phone_path": { 504 | "mode": "name", 505 | "value": "phone" 506 | }, 507 | "submit_path": { 508 | "value": "//div[@class=\"account-form-field-code\"]/a" 509 | } 510 | }, 511 | { 512 | "rate": 3, 513 | "url": "https://www.xxsy.net/Reg", 514 | "phone_path": { 515 | "mode": "name", 516 | "value": "mobileNumber" 517 | }, 518 | "password_path": { 519 | "mode": "name", 520 | "value": "userPwd" 521 | }, 522 | "password_confirm_path": { 523 | "mode": "name", 524 | "value": "confirmUserPwd" 525 | }, 526 | "submit_path": { 527 | "mode": "class_name", 528 | "value": "accounbtn" 529 | } 530 | }, 531 | { 532 | "rate": 3, 533 | "url": "http://reg.timemm.com/user/register", 534 | "phone_path": { 535 | "mode": "id", 536 | "value": "username" 537 | }, 538 | "password_path": { 539 | "mode": "id", 540 | "value": "pwd" 541 | }, 542 | "submit_path": { 543 | "value": "//button[contains(@class, \"get-code\")]" 544 | } 545 | }, 546 | { 547 | "rate": 3, 548 | "url": "https://www.znds.com/member.php?mod=zndscomregister", 549 | "preset": { 550 | "type": "script", 551 | "value": "$('agreebbrule').checked = true;hideMenu('fwin_dialog', 'dialog');" 552 | }, 553 | "phone_path": { 554 | "mode": "id", 555 | "value": "tel" 556 | }, 557 | "postset": { 558 | "type": "script", 559 | "value": "dsendsms()" 560 | } 561 | }, 562 | { 563 | "url": "https://tj.ikongjian.com/reservation/index", 564 | "preset": { 565 | "value": "//div[@class=\"fixeRight\"]/a[2]" 566 | }, 567 | "username_path": { 568 | "mode": "id", 569 | "value": "resUserName" 570 | }, 571 | "phone_path": { 572 | "mode": "id", 573 | "value": "resMobile" 574 | }, 575 | "submit_path": { 576 | "mode": "class_name", 577 | "value": "aboutJs_button" 578 | } 579 | }, 580 | { 581 | "url": "https://www.to8to.com/yezhu/", 582 | "username_path": { 583 | "mode": "id", 584 | "value": "Name" 585 | }, 586 | "phone_path": { 587 | "mode": "id", 588 | "value": "Tphone" 589 | }, 590 | "submit_path": { 591 | "mode": "class_name", 592 | "value": "form-btn" 593 | } 594 | }, 595 | { 596 | "url": "https://www.jia.com/zx/other/semtf/", 597 | "preset": { 598 | "mode": "id", 599 | "value": "zaixianbaojia" 600 | }, 601 | "username_path": { 602 | "value": "//div[@class=\"rank_li\"]/input" 603 | }, 604 | "phone_path": { 605 | "value": "//div[@class=\"rank_li\"]/input[@name=\"mobile\"]" 606 | }, 607 | "submit_path": { 608 | "value": "//a[contains(@class, \"apply_submit\")]" 609 | } 610 | }, 611 | { 612 | "url": "http://beijing.zhuangxiuyizu.cn/", 613 | "username_path": { 614 | "mode": "name", 615 | "value": "data[contact]" 616 | }, 617 | "phone_path": { 618 | "mode": "name", 619 | "value": "data[mobile]" 620 | }, 621 | "submit_path": { 622 | "mode": "class_name", 623 | "value": "head_btn" 624 | } 625 | }, 626 | { 627 | "url": "http://www.sh-juyun.com/", 628 | "username_path": { 629 | "value": "//input[@class=\"g_itext\"]" 630 | }, 631 | "phone_path": { 632 | "value": "//div[contains(@class, \"item_2\")]//input[@class=\"g_itext\"]" 633 | }, 634 | "submit_path": { 635 | "value": "//div[@class=\"m\"]" 636 | } 637 | }, 638 | { 639 | "url": "http://bj.xtuan.com/zhuangxiu/", 640 | "username_path": { 641 | "mode": "id", 642 | "value": "chenghu" 643 | }, 644 | "phone_path": { 645 | "mode": "id", 646 | "value": "phone" 647 | }, 648 | "submit_path": { 649 | "mode": "class_name", 650 | "value": "button" 651 | } 652 | }, 653 | { 654 | "url": "https://shenzhen.dyrs.com.cn/", 655 | "username_path": { 656 | "mode": "name", 657 | "value": "name" 658 | }, 659 | "phone_path": { 660 | "mode": "name", 661 | "value": "phone" 662 | }, 663 | "message_path": { 664 | "mode": "name", 665 | "value": "acreage", 666 | "msg": "120" 667 | }, 668 | "submit_path": { 669 | "value": "//button[@type=\"submit\"]" 670 | } 671 | }, 672 | { 673 | "url": "https://www.idayu.cn/", 674 | "iframe": "iframe_company_mini", 675 | "username_path": { 676 | "mode": "id", 677 | "value": "ly_name" 678 | }, 679 | "phone_path": { 680 | "mode": "id", 681 | "value": "ly_mobile" 682 | }, 683 | "submit_path": { 684 | "mode": "id", 685 | "value": "submit_lword" 686 | } 687 | }, 688 | { 689 | "url": "http://baiduloushi.com/plus/view.php?aid=653", 690 | "username_path": { 691 | "mode": "id", 692 | "value": "exampleInputName" 693 | }, 694 | "phone_path": { 695 | "mode": "id", 696 | "value": "exampleInputPhone" 697 | }, 698 | "submit_path": { 699 | "mode": "id", 700 | "value": "formsubmit" 701 | } 702 | }, 703 | { 704 | "url": "http://www.sxxxpx.cn/mba/wps/p/002QG/", 705 | "phone_path": { 706 | "mode": "name", 707 | "value": "msg_userphone" 708 | }, 709 | "postset": { 710 | "type": "script", 711 | "value": "$.msgSubmit('messageForm1')" 712 | } 713 | }, 714 | { 715 | "url": "http://wap.gbhui.com/captcha_login.html", 716 | "rate": 3, 717 | "phone_path": { 718 | "mode": "id", 719 | "value": "loginName" 720 | }, 721 | "submit_path": { 722 | "mode": "id", 723 | "value": "btnSendCode" 724 | } 725 | }, 726 | { 727 | "url": "https://2car.haval.com.cn/quicklogin", 728 | "rate": 3, 729 | "phone_path": { 730 | "mode": "id", 731 | "value": "phone" 732 | }, 733 | "submit_path": { 734 | "value": "//a[contains(@class, \"u-getcode\")]" 735 | } 736 | }, 737 | { 738 | "url": "https://account.xiaomi.com/pass/serviceLogin", 739 | "rate": 3, 740 | "phone_path": { 741 | "mode": "id", 742 | "value": "username" 743 | }, 744 | "submit_path": { 745 | "mode": "id", 746 | "value": "getSMSCode" 747 | } 748 | }, 749 | { 750 | "url": "https://wse.com.cn/zh/register/", 751 | "rate": 3, 752 | "phone_path": { 753 | "mode": "id", 754 | "value": "mobileNumber" 755 | }, 756 | "submit_path": { 757 | "mode": "id", 758 | "value": "send-verification-code-span" 759 | } 760 | }, 761 | { 762 | "url": "https://user.mihoyo.com/#/register/mobile?cb_route=%2Faccount%2Fhome", 763 | "rate": 3, 764 | "phone_path": { 765 | "mode": "xpath", 766 | "value": "//div[@class=\"input-container\"]/input" 767 | }, 768 | "submit_path": { 769 | "mode": "class_name", 770 | "value": "input-inner-btn" 771 | } 772 | }, 773 | { 774 | "url": "http://www.zgtzmls.com/Home/User/reg.html", 775 | "rate": 3, 776 | "username_path": { 777 | "mode": "id", 778 | "value": "username" 779 | }, 780 | "phone_path": { 781 | "mode": "id", 782 | "value": "mobile" 783 | }, 784 | "submit_path": { 785 | "mode": "id", 786 | "value": "sendSms" 787 | } 788 | }, 789 | { 790 | "url": "https://www.gsbankmall.com/index.php/Wap/index/userhome.html", 791 | "rate": 3, 792 | "phone_path": { 793 | "mode": "id", 794 | "value": "tel" 795 | }, 796 | "submit_path": { 797 | "mode": "id", 798 | "value": "btn" 799 | } 800 | }, 801 | { 802 | "url": "https://www.story-mark.com/login/code", 803 | "rate": 3, 804 | "phone_path": { 805 | "mode": "name", 806 | "value": "userPhone" 807 | }, 808 | "submit_path": { 809 | "mode": "id", 810 | "value": "loginVcodeBtn" 811 | } 812 | }, 813 | { 814 | "url": "https://login.51job.com/login.php?isjump=0&loginway=1&lang=c&from_domain=i&url=", 815 | "rate": 3, 816 | "phone_path": { 817 | "mode": "id", 818 | "value": "loginname" 819 | }, 820 | "postset": { 821 | "type": "script", 822 | "value": "sendPhoneCode()" 823 | } 824 | }, 825 | { 826 | "url": "http://passport.360eol.com/pc/passwordOrCodeLogin?from=http%3A%2F%2Fnanjing.360loushi.com%2F&appId=AOqn8WGeXHGZN23dF", 827 | "rate": 3, 828 | "preset": { 829 | "type": "click", 830 | "mode": "xpath", 831 | "value": "//ul[@class=\"loginNav\"]/li[last()]" 832 | }, 833 | "phone_path": { 834 | "mode": "id", 835 | "value": "phoneOrEmailOne" 836 | }, 837 | "submit_path": { 838 | "mode": "class_name", 839 | "value": "code" 840 | } 841 | }, 842 | { 843 | "url": "https://account.geekbang.org/infoq/signup?redirect=https%3A%2F%2Fwww.infoq.cn%2Farticle%2FLZE%2aob52bASspjYu4c6Z", 844 | "rate": 3, 845 | "phone_path": { 846 | "mode": "name", 847 | "value": "cellphone" 848 | }, 849 | "submit_path": { 850 | "mode": "class_name", 851 | "value": "code-btn" 852 | } 853 | }, 854 | { 855 | "url": "http://user.tcl.com/proxy/login", 856 | "rate": 3, 857 | "phone_path": { 858 | "mode": "xpath", 859 | "value": "//input[contains(@class, \"J-phone\")]" 860 | }, 861 | "submit_path": { 862 | "mode": "xpath", 863 | "value": "//span[contains(@class, \"J-GetPhoneCode\")]" 864 | } 865 | }, 866 | { 867 | "url": "https://ims.pinduoduo.com/plus/", 868 | "rate": 3, 869 | "phone_path": { 870 | "mode": "xpath", 871 | "value": "//input[contains(@class, \"login-phone\")]" 872 | }, 873 | "submit_path": { 874 | "mode": "xpath", 875 | "value": "//button[contains(@class, \"send-code-button\")]" 876 | } 877 | }, 878 | { 879 | "url": "https://www.jianshu.com/users/password/mobile_reset", 880 | "rate": 3, 881 | "phone_path": { 882 | "mode": "id", 883 | "value": "mobile_number" 884 | }, 885 | "submit_path": { 886 | "mode": "xpath", 887 | "value": "//a[contains(@class, \"js-send-code-button\")]" 888 | } 889 | }, 890 | { 891 | "url": "https://www.51jingying.com/common/login.php?loginas=manager&loginway=1&returnUrl=https%3A%2F%2Fauction.51jingying.com%2F", 892 | "rate": 3, 893 | "phone_path": { 894 | "mode": "xpath", 895 | "value": "//input[contains(@class, \"common_login_username_input\")]" 896 | }, 897 | "submit_path": { 898 | "mode": "class_name", 899 | "value": "common_login_send_phonecode" 900 | } 901 | } 902 | ] 903 | --------------------------------------------------------------------------------