您的位置:首页 > 新闻资讯 >文章内容
代理IP爬虫抓取广告源代码
来源:互联网 作者:admin 时间:2019-09-26 10:35:54

  代理IP是爬虫的黄金搭配,相信这一点,是每一位经历过爬虫工作的都不会否认的。因为没有代理IP的协助,爬虫程序就会被网站的反爬虫给KO掉。


  我们如何利用爬虫,爬取网站页面广告元素,实现监控爬取元素的数目,定时发送监控邮件的操作?


代理IP爬虫抓取广告源代码


  以下是操作具体代码:


  #!/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)


  通过以上操作我们就可以抓取到广告源代码,完成我们想要的目的啦。


相关文章内容简介
推荐阅读
  • 15 2019-05
    代理IP质量不过关有哪些表现?

    代理IP质量不过关有哪些表现?谁都像找个价格低,而质量又好的代理IP使用的,不过这很难找,通常质量好的价格也必定是不便宜,毕竟这也是花了高成本的。不过我们可以对比,找个性价比

  • 20 2019-12
    代理IP池用不了怎么办?

    代理IP池用不了怎么办?估计不少人都看过很多搭建代理IP​池的文章,就想着也学下,找些免费的代理IP使用不是很好么?然后发现都是坑,无法使用。这怎么回事呢?

  • 04 2020-06
    怎么选择换ip软件

    很多人觉得选择代理ip非常的复杂,但是机灵代理认为,其实选择ip代理并没有大家想象之中的那么复杂。下面我们来看看怎么选择换ip软件使用。

  • 13 2019-04
    什么是动态IP?动态IP解析说明

    什么是动态IP呢?IP都动态IP也有静态IP,我们常用的是动态IP,原因是ipv4的IP地址分配完了,没得用了,于是我们大部分都是使用动态IP的。

  • 29 2020-04
    IP代理都有什么用处

    代理服务器英文全称是(Proxy Server),也叫做代理IP,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。代理服务器就好象一个大的Cache,这样就能显著提高浏览速

  • 04 2019-06
    爬虫代理应用多领域

    爬虫代理应用多领域,比如营销推广,数据采集,资料查看等等的,为什么这些领域需要使用爬虫代理呢?

在线咨询
大客户经理
大客户经理
1829380381
13316264505

大客户经理微信

微信公众号

微信公众号

回到顶部