复制粘贴太麻烦,python帮你来完成。
#!usr/bin/env python
# -*- coding: utf-8 -*-
#!文件类型: python
#!创建时间: 2019/1/23 15:03
#!作者: SongBin
#!文件名称: GetNoodle_Old.py
#!简介:豆瓣出租房子
import time
import win32api
import pyperclip
import win32con
from pykeyboard import PyKeyboard
from selenium import webdriver
from selenium.common.exceptions import NoSuchElementException, ElementNotInteractableException, \
ElementNotVisibleException, TimeoutException, UnexpectedAlertPresentException
from selenium.webdriver import DesiredCapabilities
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import logging
logging.basicConfig(level=logging.INFO,#控制台打印的日志级别
filename='C:\pylogs\output.log',
filemode='a',##模式,有w和a,w就是写模式,每次都会重新写日志,覆盖之前的日志
#a是追加模式,默认如果不写的话,就是追加模式
format=
'%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s'
#日志格式
)
chrome_options = Options()
# chrome_options.add_argument("--headless")
count = 1
m=0
while count > 0:
try:
try:
# 打开浏览器
logging.error("程序开始运行###########")
print("程序开始运行###########")
# browser = webdriver.PhantomJS(executable_path='C:\\softs\\phantomjs-2.0.0-windows\\bin\\phantomjs') # .Firefox() # .PhantomJS(desired_capabilities=dcap) # executable_path='/usr/local/bin/phantomjs' phantomjs没有设置环境变量时可加参数
browser = webdriver.Chrome(executable_path='C:\\softs\\chrome\\chromedriver.exe',options=chrome_options) # .Firefox() # .PhantomJS(desired_capabilities=dcap) # executable_path='/usr/local/bin/phantomjs' phantomjs没有设置环境变量时可加参数
browser.implicitly_wait(10)
loginurl = 'https://www.douban.com/'
browser.maximize_window()
browser.get(loginurl)
# 切换到login frame
iframe = browser.find_elements_by_tag_name("iframe")[0]
browser.switch_to.frame(iframe)
browser.find_element_by_xpath("/html/body/div[1]/div[1]/ul[1]/li[2]").click()
except UnexpectedAlertPresentException:
# 获取alert对话框
dig_alert = browser.switch_to.alert
time.sleep(1)
# 打印警告对话框内容
print(dig_alert.text)
# alert对话框属于警告对话框,我们这里只能接受弹窗
dig_alert.accept()
time.sleep(1)
pass
#这里可设置多个豆瓣号
users = ["",""]
WebDriverWait(browser, 5, 1).until(EC.presence_of_element_located((By.ID, 'username')))
browser.find_element_by_id('username').send_keys(users[1])#选择一个账号
WebDriverWait(browser, 5, 1).until(EC.presence_of_element_located((By.ID, 'password')))
browser.find_element_by_id('password').send_keys('') #这里填写选择的账号的密码
browser.find_element_by_xpath('/html/body/div[1]/div[2]/div[1]/div[5]/a').click()
time.sleep(10)
#进入到我的小组列表页
browser.get("https://www.douban.com/group/people/179416843/joins")
time.sleep(5)
alist = browser.find_elements_by_css_selector("ul>li>div.pic>a")
hrefs=[];
for a in alist:
href = a.get_attribute("href")
print(a.get_attribute("href"))
hrefs.append(href)
while m<len(hrefs):
# for href in hrefs:
href = hrefs[m];
browser.get(href+"new_topic")
time.sleep(5)
# 填写标题
browser.find_element_by_class_name("group-editor-input").send_keys("2019.10.11后入住,北京14号线善各庄地铁站旁边(200米),善各庄周转房,18平单间出租,租金1800 ,可押一付一")
# 填写内容
pyperclip.copy("北京14号线善各庄地铁站旁边(200米),善各庄周转房,18平单间出租,租金1800 ,可押一付一,2019.10.11后可入住,无中介费用,男女不限,可住一个人,不可以做饭菜,水电网全免,空调电费有个人电表单算,紧邻望京科技产业园,上班出行方便。有意向租房者可联系房东赵女士:15001260611同微,有意向者可工作日晚上7点后,或周末看房。")
browser.find_element_by_class_name("public-DraftStyleDefault-ltr").click()
time.sleep(0.5)
k = PyKeyboard()
# 模拟键盘点击ctrl+v
k.press_key(k.control_key)
k.tap_key('v')
k.release_key(k.control_key)
# browser.find_element_by_class_name("public-DraftStyleDefault-ltr").click()
# 上传图片
browser.find_element_by_class_name("DRE-ui-button-image").click()
time.sleep(0.5)
pyperclip.copy("C:\\chuzu\\1.jpg")
time.sleep(0.5)
k2 = PyKeyboard()
# 模拟键盘点击ctrl+v
k2.press_key(k2.control_key)
k2.tap_key('v')
k2.release_key(k2.control_key)
k12 = PyKeyboard()
k12.tap_key(k12.enter_key)
time.sleep(2)
# 上传图片
browser.find_element_by_class_name("DRE-ui-button-image").click()
time.sleep(0.5)
pyperclip.copy("C:\\chuzu\\2.jpg")
time.sleep(0.5)
k2 = PyKeyboard()
# 模拟键盘点击ctrl+v
k2.press_key(k2.control_key)
k2.tap_key('v')
k2.release_key(k2.control_key)
k12 = PyKeyboard()
k12.tap_key(k12.enter_key)
time.sleep(2)
browser.find_element_by_class_name("group-editor-button-submit").click()
time.sleep(10)
# browser.switch_to.default_content
m=m+1
print("发完一遍!")
m = 0
# 一小时后重发一次
time.sleep(3600)
except Exception as e:
logging.error("异常信息:"+str(e))
print("异常信息:"+str(e))
# browser.quit()
#win32api.MessageBox(0, "出现异常!", "消息框标题", win32con.MB_OK)
# count = 0
# break
pass
频繁发信息会出现图片验证码的问题待解决,现在可以手动验证,后期可以用验证码识别技术解决,禁止发言的问题无法解决,只能隔一段时间再发。
更多内容请访问:IT源点
注意:本文归作者所有,未经作者允许,不得转载