
qq:800819103
在线客服,实时响应
qq群
在线客服,实时响应
客服电话
400-998-9776转3代理IP是爬虫的黄金搭配,相信这一点,是每一位经历过爬虫工作的都不会否认的。因为没有代理IP的协助,爬虫程序就会被网站的反爬虫给KO掉。
我们如何利用爬虫,爬取网站页面广告元素,实现监控爬取元素的数目,定时发送监控邮件的操作?
以下是操作具体代码:
#!/usr/bin/env python2.7
# -*- coding: utf-8 -*-
'''
@xiayun
@896365105@qq.com
#爬取网站内容,利用phantomjs:IP代理+修改UA+动态页面执行JS
'''
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
import time
import urllib,urllib2
import smtplib
import re
from email.mime.text import MIMEText
from email.header import Header
import sys
def reptile():
global result, data
#proxy_ip.txt为IP代理池,可以自己爬IP,也可以买,不过都不稳定,
#需要在前面再加一个IP验证程序。
IPS = [i for i in open("./proxy_ip.txt", 'r').readline().split('\n') if i]
print IPS
for i in IPS:
service_args = []
service_args = ['--proxy-type=HTTP',]
IP_str = ''.join(i)
print IP_str
proxy_IP = '--proxy=%s' % IP_str
service_args.append(proxy_IP)
dcap = dict(DesiredCapabilities.PHANTOMJS)
#创建UA头
dcap["phantomjs.page.settings.userAgent"] = ('Mozilla/5.0 (baomihua@iPhone;
CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko)
Version/9.0 Mobile/13B143 Safari/601.1')
#利用phantomjs仿浏览器动作,参数2是代理IP
driver = webdriver.PhantomJS(desired_capabilities=dcap, service_args=service_args)
#设置访问超时时间
driver.implicitly_wait(60)
driver.set_page_load_timeout(60)
try:
driver.get('网页地址')
except:
print "timeout"
finally:
data = driver.page_source
time.sleep(20)
req = r"广告元素"
rule1 = re.compile(req)
lists = re.findall(rule1, data)
counts = len(lists)
print counts
# print data
driver.quit()
#判断广告元素是否为22
if counts == 22:
print "The webpage is OK!"
result = "The webpage is OK!Find 22 广告元素!
proxy_IP:%s " % IP_str
break
if counts != 22:
#IPS.remove(i)
print "%s is bad!" % i.strip()
result = "The webpage maybe bad"
print "close"
#返回结果和网页代码
return result, data
def send_mail(result,data):
receivers = ['XXX@XX.com'] #接收人
mail_host = 'smtp.exmail.qq.com' #代理邮箱smtp协议
mail_user = 'xxx@xxx.com' #发送人
mail_pass = 'xxxx' #密码
mail_postfix = 'xxxx' #发件箱的后缀
title = str(result)
msg = MIMEText(data, 'plain', 'utf-8') #文本格式内容
me = title.decode('utf-8') + "<" + mail_user + ">"
msg['Subject'] = Header(title, 'utf-8')
msg['From'] = Header(me, 'utf-8')
msg['To'] = Header(";".join(receivers), 'utf-8')
try:
s = smtplib.SMTP()
s.connect(mail_host)
s.login(mail_user, mail_pass)
s.sendmail(me,receivers , msg.as_string())
s.close()
print "发送成功"
return True
except smtplib.SMTPException:
print "Error: 无法发送邮件"
return False
if __name__ == '__main__':
while 1:
print 'start' + ' ' + ''.join(time.ctime(time.time()))
result, data = reptile()
send_mail(result=result, data=data)
print 'stop' + ' ' + ''.join(time.ctime(time.time()))
time.sleep(600)
sys.exit(0)
通过以上操作我们就可以抓取到广告源代码,完成我们想要的目的啦。
代理IP质量不过关有哪些表现?谁都像找个价格低,而质量又好的代理IP使用的,不过这很难找,通常质量好的价格也必定是不便宜,毕竟这也是花了高成本的。不过我们可以对比,找个性价比
代理IP池用不了怎么办?估计不少人都看过很多搭建代理IP池的文章,就想着也学下,找些免费的代理IP使用不是很好么?然后发现都是坑,无法使用。这怎么回事呢?
很多人觉得选择代理ip非常的复杂,但是机灵代理认为,其实选择ip代理并没有大家想象之中的那么复杂。下面我们来看看怎么选择换ip软件使用。
什么是动态IP呢?IP都动态IP也有静态IP,我们常用的是动态IP,原因是ipv4的IP地址分配完了,没得用了,于是我们大部分都是使用动态IP的。
代理服务器英文全称是(Proxy Server),也叫做代理IP,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速
爬虫代理应用多领域,比如营销推广,数据采集,资料查看等等的,为什么这些领域需要使用爬虫代理呢?