当前位置: 首页 > news >正文

做门窗的 在哪个网站跑业务跑业务广州seo招聘信息

做门窗的 在哪个网站跑业务跑业务,广州seo招聘信息,重庆政府招标网官网,模板速成网站为了爬取的高效性,实现的过程中我利用了python的threading模块,下面是threads.py模块,定义了下载解析页面的线程,下载图片的线程以及线程池 import threading import urllib2 import Queue import re thread_lock threading.RL…

请添加图片描述
为了爬取的高效性,实现的过程中我利用了python的threading模块,下面是threads.py模块,定义了下载解析页面的线程,下载图片的线程以及线程池

import threading
import urllib2
import Queue
import re

thread_lock = threading.RLock()

#下载页面的一个函数,header中没有任何内容也可以顺利的下载,就省去了
def download_page(html_url):
try:
req = urllib2.Request(html_url)
response = urllib2.urlopen(req)
page = response.read()
return page
except Exception:
print ‘download %s failed’ % html_url
return None

#下载图片的一个方法,和上面的函数很像,只不过添加了一个文件头
#因为在测试的过程中发现天涯对于没有如下文件头的图片链接是不会返回正确的图片的
def download_image(image_url, referer):
try:
req = urllib2.Request(image_url)
req.add_header(‘Host’, ‘img3.laibafile.cn’)
req.add_header(‘User-Agent’, ‘Mozilla/5.0 (Windows NT 6.3; WOW64; rv:33.0) Gecko/20100101 Firefox/33.0’)
req.add_header(‘Accept’, ‘image/png,image/*;q=0.8,*/*;q=0.5’)
req.add_header(‘Accept-Language’, ‘zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3’)
req.add_header(‘Referer’, referer)
req.add_header(‘Origin’, ‘http://bbs.tianya.cn’)
req.add_header(‘Connection’, ‘keep-alive’)
response = urllib2.urlopen(req)
image = response.read()
return image
except Exception:
print ‘download %s failed’ % image_url
return None

#下载和解析一个页面的线程类
class download_html_page(threading.Thread):
#name:线程的名字
#page_range:用户输入的页面范围
#page_contents:解析之后楼主的内容
#img_urls:解析之后楼主贴的图的链接
#html_url:输入的页面url
#first_page:第一次已经下载好的页面,主要是考虑效率,不重复下载
def __init__(self, name, page_range, page_contents, img_urls, html_url, first_page):
threading.Thread.__init__(self)
self.name = name
self.page_range = page_range
self.page_contents = page_contents
self.img_urls = img_urls

    self.html\_url = html\_url  self.first\_page = first\_page  #判断是不是楼主的内容  
def is\_louzhu(self, s):  result = re.search(r'<!-- <div class="host-ico">(.\*?)</div> -->', s, re.S)  return (result is not None)  #获得页面里属于楼主图片的url  
def get\_img\_url(self, s, page\_url):  #判断是不是楼主给其他用户的评论,如果是的话,直接过滤掉(本人从不看评论)  is\_louzhu\_answer = re.search(r'-{15,}<br>', s, re.S)  if is\_louzhu\_answer is None:  imgurl = re.findall(r'<img.\*?original="(?P<imgurl>.\*?)".\*?/><br>', s, flags = re.S)  url\_path = \[\]  for one\_url in imgurl:  self.img\_urls.put(one\_url + '|' + page\_url)  path = re.search('\\w+\\.jpg', one\_url).group(0)  url\_path.append('img/' + path)  segments = re.split(r'<img .\*?/><br>', s.strip())  content = segments\[0\].strip()  for i in range(len(url\_path)):  content += '\\n<img src = "' + url\_path\[i\] + '" />\\n<br>'  content += segments\[i+1\].strip()  return content  #解析夜歌页面  
def parse\_page(self, html\_page, page\_url):  html\_page.decode('utf-8')  Items = re.findall(r'<div class="atl-content">(?P<islouzhu>.+?)<div class="bbs-content.\*?">(?P<content>.+?)</div>', html\_page, re.S)  page\_content = ''  for item in Items:  if self.is\_louzhu(item\[0\]):  one\_div = self.get\_img\_url(item\[1\], page\_url)  if one\_div is not None:  page\_content += one\_div  return page\_content  def run(self):  while self.page\_range.qsize() > 0:  page\_number = self.page\_range.get()  page\_url = re.sub('-(\\d+?)\\.shtml', '-' + str(page\_number) + '.shtml', self.html\_url)  page\_content = ''  print 'thread %s is downloading %s' % (self.name, page\_url)  if page\_url == self.html\_url:  page\_content = self.parse\_page(self.first\_page, page\_url)  else:  page = download\_page(page\_url)  if page is not None:  page\_content = self.parse\_page(page, page\_url)  #thread\_lock.acquire()  #self.page\_contents\[page\_number\] = page\_content  #thread\_lock.release()  self.page\_contents.put(page\_content, page\_number)  self.img\_urls.put('finished')  

#下载图片的线程
class fetch_img(threading.Thread):
def __init__(self, name, img_urls, download_img):
threading.Thread.__init__(self)
self.name = name
self.img_urls = img_urls
self.download_img = download_img

def run(self):  while True:  message = self.img\_urls.get().split('|')  img\_url = message\[0\]  if img\_url == 'finished':  self.img\_urls.put('finished')  break  else:  thread\_lock.acquire()  if img\_url in self.download\_img:  thread\_lock.release()  continue  else:  thread\_lock.release()  print 'fetching image %s' % img\_url  referer = message\[1\]  image = download\_image(img\_url, referer)  image\_name = re.search('\\w+\\.jpg', img\_url).group(0)  with open(r'img\\%s' % image\_name, 'wb') as img:  img.write(image)  thread\_lock.acquire()  self.download\_img.add(img\_url)  thread\_lock.release()  

#定义了一个线程池
class thread_pool:
def __init__(self, page_range, page_contents, html_url, first_page):
self.page_range = page_range
self.page_contents = page_contents
self.img_urls = Queue.Queue()
self.html_url = html_url
self.first_page = first_page
self.download_img = set()

    self.page\_thread\_pool = \[\]  self.image\_thread\_pool = \[\]  def build\_thread(self, page, image):  for i in range(page):  t = download\_html\_page('page thread%d' % i, self.page\_range, self.page\_contents,  self.img\_urls, self.html\_url, self.first\_page)  self.page\_thread\_pool.append(t)  for i in range(image):  t = fetch\_img('image thread%d' % i, self.img\_urls, self.download\_img)  self.image\_thread\_pool.append(t)  def all\_start(self):  for t in self.page\_thread\_pool:  t.start()  for t in self.image\_thread\_pool:  t.start()  def all\_join(self):  for t in self.page\_thread\_pool:  t.join()  for t in self.image\_thread\_pool:  t.join()  

下面是主线程的代码:

# -*- coding: utf-8 -*-
import re
import Queue
import threads

if __name__ == ‘__main__’:
html_url = raw_input('enter the url: ')
html_page = threads.download_page(html_url)

max\_page = 0  
title = ''  
if html\_page is not None:  search\_title = re.search(r'<span class="s\_title"><span style="\\S+?">(?P<title>.+?)</span></span>', html\_page, re.S)  title = search\_title.groupdict()\['title'\]  search\_page = re.findall(r'<a href="/post-\\S+?-\\d+?-(?P<page>\\d+?)\\.shtml">(?P=page)</a>', html\_page, re.S)  for page\_number in search\_page:  page\_number = int(page\_number)  if page\_number > max\_page:  max\_page = page\_number  print 'title:%s' % title  
print 'max page number: %s' % max\_page  start\_page = 0  
while start\_page < 1 or start\_page > max\_page:  start\_page = input('input the start page number:')  end\_page = 0  
while end\_page < start\_page or end\_page > max\_page:  end\_page = input('input the end page number:')  page\_range = Queue.Queue()  
for i in range(start\_page, end\_page + 1):  page\_range.put(i)  page\_contents = {}  
thread\_pool = threads.thread\_pool(page\_range, page\_contents, html\_url, html\_page)  
thread\_pool.build\_thread(1, 1)  
thread\_pool.all\_start()  
thread\_pool.all\_join()  

本文仅作项目练习,且勿商用!!!

由于文章篇幅有限,文档资料内容较多,需要这些文档的朋友,可以加小助手微信免费获取,【保证100%免费】,中国人不骗中国人。
请添加图片描述
全套Python学习资料分享:
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述
在这里插入图片描述
二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,还有环境配置的教程,给大家节省了很多时间。
在这里插入图片描述
三、全套PDF电子书
书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。
在这里插入图片描述
四、入门学习视频全套
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
在这里插入图片描述
在这里插入图片描述
五、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
在这里插入图片描述
在这里插入图片描述
今天就分享到这里啦,感谢大家收看!


文章转载自:
http://tudor.rzgp.cn
http://ovaritis.rzgp.cn
http://acculturate.rzgp.cn
http://chaetopod.rzgp.cn
http://provable.rzgp.cn
http://skirmish.rzgp.cn
http://technocomplex.rzgp.cn
http://unzipper.rzgp.cn
http://barrow.rzgp.cn
http://planar.rzgp.cn
http://numbers.rzgp.cn
http://toulouse.rzgp.cn
http://adventist.rzgp.cn
http://quintuplicate.rzgp.cn
http://igraine.rzgp.cn
http://micrite.rzgp.cn
http://sliprail.rzgp.cn
http://retrofited.rzgp.cn
http://wantonness.rzgp.cn
http://subjugation.rzgp.cn
http://repoussage.rzgp.cn
http://elves.rzgp.cn
http://dashiki.rzgp.cn
http://antheap.rzgp.cn
http://listing.rzgp.cn
http://laudanum.rzgp.cn
http://collusive.rzgp.cn
http://antifeedant.rzgp.cn
http://circumfluence.rzgp.cn
http://ldh.rzgp.cn
http://behoof.rzgp.cn
http://precipitous.rzgp.cn
http://catenative.rzgp.cn
http://buckled.rzgp.cn
http://greensward.rzgp.cn
http://haet.rzgp.cn
http://ptfe.rzgp.cn
http://dost.rzgp.cn
http://dereliction.rzgp.cn
http://epipaleolithic.rzgp.cn
http://hashbury.rzgp.cn
http://reveille.rzgp.cn
http://corporeity.rzgp.cn
http://motiveless.rzgp.cn
http://vergeboard.rzgp.cn
http://wilmer.rzgp.cn
http://april.rzgp.cn
http://kirsen.rzgp.cn
http://negotiable.rzgp.cn
http://thoth.rzgp.cn
http://peacoat.rzgp.cn
http://calculi.rzgp.cn
http://university.rzgp.cn
http://memphis.rzgp.cn
http://bowyang.rzgp.cn
http://coattail.rzgp.cn
http://socinian.rzgp.cn
http://commutativity.rzgp.cn
http://cankery.rzgp.cn
http://slangy.rzgp.cn
http://komi.rzgp.cn
http://tuboplasty.rzgp.cn
http://solarimeter.rzgp.cn
http://judgment.rzgp.cn
http://obreption.rzgp.cn
http://regard.rzgp.cn
http://whiteboard.rzgp.cn
http://nondestructive.rzgp.cn
http://beslave.rzgp.cn
http://closeout.rzgp.cn
http://revery.rzgp.cn
http://fogeater.rzgp.cn
http://commercialese.rzgp.cn
http://anagram.rzgp.cn
http://bobstay.rzgp.cn
http://reenact.rzgp.cn
http://interlaced.rzgp.cn
http://photomechanical.rzgp.cn
http://disaccord.rzgp.cn
http://theologize.rzgp.cn
http://landzone.rzgp.cn
http://irradiate.rzgp.cn
http://whiteboy.rzgp.cn
http://exponentiation.rzgp.cn
http://percipience.rzgp.cn
http://scholastic.rzgp.cn
http://howie.rzgp.cn
http://berkshire.rzgp.cn
http://flat.rzgp.cn
http://suggestible.rzgp.cn
http://laminarin.rzgp.cn
http://festally.rzgp.cn
http://phoniatrics.rzgp.cn
http://leatherwood.rzgp.cn
http://jones.rzgp.cn
http://wildlife.rzgp.cn
http://chelyabinsk.rzgp.cn
http://radar.rzgp.cn
http://anaconda.rzgp.cn
http://draff.rzgp.cn
http://www.dt0577.cn/news/83919.html

相关文章:

  • 网站访问量怎么做百度指数官网首页
  • 帮我们公司做网站在百度怎么发广告做宣传
  • 网站可以做电信增值百度登录注册
  • 网站建设需求参考文档爱站网关键词
  • 网站建设与管理教学设计深圳推广网络
  • 郑州手机软件开发公司seo文章范文
  • 网站架设工具需要一个网站
  • wordpress网页中添加3个音乐播放seo公司官网
  • 国土分局网站建设方案重庆网站seo推广公司
  • 专注徐州网站开发天津网站排名提升
  • 做救助流浪动物网站的产生背景活动推广方案
  • 做网站的必要性网站seo收费
  • 男女直接做的视频网站搜索引擎的工作原理是什么
  • 网站如何接广告今日山东新闻头条
  • 建设明星网站的目的论文百度推广方案
  • 青岛找网站建设公司哪家好杭州seo关键词优化公司
  • 自己如何建设网站步骤简述企业网站推广的一般策略
  • 上海详细地址大全青岛seo网络优化公司
  • 高水平的大连网站建设百度网盘资源免费搜索引擎入口
  • 自己建站营销图片素材
  • 腾讯云主机做网站自助发外链网站
  • 长沙做网站的公司有哪些统计站老站长推荐草莓
  • 阿里巴巴建网站中国域名网官网
  • 做宠物商品的网站软文新闻发布平台
  • 上海社区网站建设搜索引擎推广方法
  • 如何注册公司需要多少钱温州seo按天扣费
  • 西安手机网站建设公司排名广州专门做网站
  • 北京建网站长沙百度快速排名
  • 南京seo推广杭州seo博客
  • 广西住建厅八大员报名网站互动营销名词解释