Python写的Web spider(网络爬虫)

Python写的Web spider:

<span style="font-size:14px;"># web spider
# author vince 2015/7/29
import urllib2
import re

# get href content
pattern = '<a(?:\\s+.+?)*?\\s+href=\"([h]{1}[^\"]*?)\"'
t = set("")    # collection of url

def fecth(url):
    http_request = urllib2.Request(url)
    http_request.add_header('User-Agent', 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/43.0.2357.134 Safari/537.36')
    http_response = urllib2.urlopen(http_request)
    print http_response.code
    if http_response.code == 200:
        for i in range(0,2000):     # 2000 rows
            html = http_response.readline()
            if html == '':
                break
            else:
                a = re.search(pattern, html)
                if a:
                    for href in a.groups():
                        print href
                        t.add(href)

# main start
#if __name__ == '__main__':    

url = 'http://blog.csdn.net/'     # target site
t.clear()
t.add(url)
while (len(t) != 0):
    uu = t.pop()
    print uu
    fecth(uu)
</span>

如果没有设置User-Agent,有些网站会不让访问,报403

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-11-10 05:59:57

Python写的Web spider(网络爬虫)的相关文章

使用Python写的第一个网络爬虫程序

今天尝试使用python写一个网络爬虫代码,主要是想访问某个网站,从中选取感兴趣的信息,并将信息按照一定的格式保存早Excel中. 此代码中主要使用到了python的以下几个功能,由于对python不熟悉,把代码也粘贴在下面. 1, 使用url打开网站网页 import urllib2 data = urllib2.urlopen(string_full_link).read().decode('utf8') print data 2,使用正则表达式匹配 import re #一般的英文匹配 r

【转】用Python写了个金融数据爬虫,半小时干了全组一周的工作量

用Python写了个金融数据爬虫,半小时干了全组一周的工作量 原创kk12345677 最后发布于2019-08-21 16:59:54 阅读数 1652 收藏 展开 最近,越来越多的研究员.基金经理甚至财务会计领域的朋友,向小编咨询:金融人需要学Python么? 事实上在2019年,这已经不是一个问题了.Python已成为国内很多顶级投行.基金.咨询等泛金融.商科领域的必备技能.中金公司.银河证券.南方基金.银华基金在招聘分析师岗位时,纷纷要求熟练掌握Python数据分析技能. Excel我已

python写的简单有效的爬虫代码

python写的简单有效的爬虫代码 by 伍雪颖 import re import urllib def getHtml(url): html = urllib.urlopen(url) scode = html.read() return scode def getImage(source): reg = r'src="(.*?\.jpg)"' imgre = re.compile(reg) images = re.findall(imgre,source) x = 0 for i

[CareerCup] 10.5 Web Crawler 网络爬虫

10.5 If you were designing a web crawler, how would you avoid getting into infinite loops? 这道题问如果让我们设计一个网络爬虫,怎么样才能避免进入无限循环.那么何谓无限循环呢,如果我们将网络看做一个图Graph,无限循环就是当存在环Circle时可能发生的情况.当我们用BFS来进行搜索时,每当我们访问过一个网站,我们将其标记为已访问过,下次再遇到直接跳过.那么如何定义访问过呢,是根据其内容还是根据其URL链

也写一个简单的网络爬虫

引子 在cnblogs也混了许久,不过碍于平日工作太忙,一篇随笔也没有写过.最近经常感觉到自己曾经积累过的经验逐步的丢失,于是开通了博客,主要是记录一下自己在业余时间里玩的一些东西. 缘起 言归正传.某次在在某高校网站闲逛,看到了一些有趣的东西想要保存起来,但是却分散在各个页面,难以下手.使用baidu,google却有无法避免的搜索到此站点之外的内容.于是就想如果有一个爬虫,可以抓取指定域名的某些感兴趣的内容,不是很好.在网上简单搜索了一下,简单的都不满意,功能强大的又太复杂,就想自己写一个.

随手用python写一个下载源码爬虫试试

最近在研读jdk源码,网上找了下资源,发现都不完整. 后来新发现了一个有完整源码的地方,主要包括了java,c,c++的东西,装逼需要,就想拿来玩玩.但是,找了好多种下载打开的方式,发现都不对.于是,我随手写了python爬虫,把他搞定. 1. 思路分析 1.1. 目标地址:http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/dddb1b026323/,打开后先自己看下,是否符合自己的需求: 1.2. 分析此结构下主要有两种形式,一是目录文件,二是最终

使用python写一个web

先编写hello.py,实现Web应用程序的WSGI处理函数: # hello.py def application(environ, start_response): start_response('200 OK', [('Content-Type', 'text/html')]) return '<h1>Hello, %s!</h1>' % (environ['PATH_INFO'][1:] or 'web') 再编写一个server.py,负责启动WSGI服务器,加载appl

用Python写了个简单小爬虫

1 #coding: utf-8 2 3 import requests,urllib2,urlparse,time,sys 4 from bs4 import BeautifulSoup 5 6 #获取百度url wd查询关键子 pn第几页 rn 每页多少条 最大50条 7 #getbaidu.py 关键字 爬取页数 每页数量 8 #getbaidu.py example 10 50 9 #百度特性 每页显示条数为10 20 30类型的整数 10 11 12 type = sys.getfil

python写的的简单的爬虫小程序

import re import urllib def getHtml(url): page=urllib.urlopen(url) html=page.read() return html def getpic(html): s=r'src="(.*?\.jpg)" pic_ext' piclist=re.findall(s,html) x=0 for imgurl in piclist: urllib.urlretrieve(imgurl,'%d.jpg'%x) x=x+1 htm