您的位置:首页 > 新闻资讯 >文章内容
代理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)


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


相关文章内容简介
推荐阅读
  • 26 2019-03
    代理ip地址的选择方法和所需时间

    现在由于经济和其他方面的快速发展,不仅仅是个人企业,也需要这种大数据的支持,然后根据自己获得的这些数据制定适合自己的营销方案,当然关于这种数据的搜集还是需要这种代理IP,现

  • 11 2019-12
    IP代理的功能都有哪些?

    IP代理的功能都有哪些?随着互联网的发展,许多地方都需要使用代理ip​来为自己的IP地址进行各种协助,例如店铺刷单、网络投票和爬虫采集等等,当我们遇上这些问题时不用担心也不用烦恼

  • 17 2019-06
    国内ip代理支持手机使用吗?

    国内ip代理支持手机使用吗?现在手机的使用非常广,好多人还几部手机的,手机出了满足日常的生活外,越来越多的人也用于工作。如果手机需要更换IP地址,那么国内ip代理支持手机使用吗?

  • 20 2019-03
    不知道怎么制作代理ip池?抓取免费IP搭建代理IP池教程

    有可能是因为使用了低质量的代理IP,可能是你的IP进了该站的黑名单,某一段时间内不能访问该站的资源。那么该怎么解决这个问题?比较有效的方式是使用代理ip,而如果有一个自己的代理ip

  • 03 2019-10
    PHP设置代理的方法

    代理IP的应用可以帮助互联网工作者开展多项网络项目,像是数据爬虫、软件测试、甚至是在网络营销中也有代理IP的用处。使用代理IP,只要掌握好方法,其实并不是特别困难。机灵代理在此给

  • 06 2019-12
    手动换IP与使用代理IP的操作

    在我们上网的时候,每次都会由宽带或者是ADSL来随机临时分配一个IP地址,途径是来源于你的上网方式。如果我们想要换IP,我们可以自己手动来进行更换,也可以通过代理IP来换IP。

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

大客户经理微信

微信公众号

微信公众号

回到顶部