Python, Crawler and Raspberry Pi

原创 2016年06月02日 00:14:58

I left RP for quite a while as I did not think I can achieve something with RP in a short run. But since I’ve started Python, I start Raspberry Pi.

Today, at the moment, I’m fabricating another piece of crap to introduce the new web crawler. BeautifulSoup and mechanize.
It’s only that I’m glad I start to learn about Python. Emphasis on About…

from bs4 import BeautifulSoup
import mechanize
import time
import urllib
import string

start = "http://" +raw_input ("Where would you like to start searching?\n")
br = mechanize.Browser()
r = br.open(start)
html = r.read() # It's the moment xml gets generated.

soup = BeautifulSoup(html)
for link in soup.find_all('a'):
    print(link.get('href')) #This prints out all sub directories.

why cannot see the pic

Full code from “Learn Raspberry Pi Programming with Python”, see the note, that is important.

import mechanize
import time
from bs4 import BeautifulSoup
import re
import string
import os
import urllib

def downloadProcess(html,base,filetype,linkList):
    "This does the actual file downloading."
    soup = BeautifulSoup(html)
    for link in soup.find_all('a'):
        linkText = str(link.get('href')) # here we assume the href starts at sub directory, not start with http://

        if filetype in linkText:
            slashList = [i for i, ind in enumerate(linkText) if ind == '/'] # it can store the index of "/"
            directoryName = linkText[(slashList[0]+1):slashList[1]]  # Slice to get the name of Directory
            if not os.path.exists(directoryName):
                os.makedirs(directoryName)

            image = urllib.URLopener()
            linkGet = base + linkText
            filesave = string.lstrip(linkText,"/")
            image.retrieve(linkGet,filesave)

        elif "htm" in linkText: #cover both html and htm
            linkList.append(link)


start = "http://" + raw_input("Where would you like to start searching?\n")
filetype = raw_input("What file type are you looking for?\n")

numSlash = start.count('/')
slashList = [i for i, ind in enumerate(start) if ind == '/']

if (len(slashList) >= 3): 
    third = slashList[2]
    base = start[:third]

else:
    base = start

br = mechanize.Browser()
r = br.open(start)
html = r.read()
linkList = []

print "Parsing" + start
downloadProcess(html,base,filetype,linkList)

for leftover in linkList:

    time.sleep(0.1)
    linkText = str(leftover.get('href'))
    print "Parsing" + base + linkText
    br = mechanize.Browser()
    r = br.open(base + linkText)
    html = r.read()
    linkList = []
    downloadProcess(html,base,filetype,linkList) # The recursion: depth goes first.
版权声明:本文为博主原创文章,未经博主允许不得转载。

Raspberry Pi + 3个USB摄像头 + Motion(简易监控设备配置记录1——介绍以及安装)

参考: Debian官网链接 Motion官网链接首先,参见Debian官网链接对Motion的介绍,网页中包含了所有相关依赖包,请首先确保这些依赖包的安装。Motion介绍摘出对Motion的介...
  • Paul_C_V
  • Paul_C_V
  • 2015年04月12日 19:21
  • 3451

Raspberry Pi 远程登录配置

1. 设置支持SSH远程登录: 使能SSH登录选项: 查看树莓派的IP地址,这里使用Wifif连接的方式,因此, IP是192.168.31.50: 2. 在电脑使用SSH登录工具登...
  • Linjingke32
  • Linjingke32
  • 2017年04月15日 13:40
  • 651

Raspberry Pi 树莓派入门

转载:Raspberry Pi 树莓派入门 转载说明: 拿了同学一个树莓派,这个小板子在去年火的不行,看看能用来做点啥,网络上资料简单搜索了下,这篇文章算是写的比较系统的。因此整理转载,原文链...
  • Enjoying_Science
  • Enjoying_Science
  • 2017年05月11日 01:49
  • 392

raspberry pi 3 变身路由器

raspberry pi 3 变身路由器首先,你的raspberry 3 要装上raspbian OS,具体参看官方的手册。另外像笔者这种在高校的学生,不能只装上hostpad和udhpc这样的软件就...
  • u012840636
  • u012840636
  • 2016年10月23日 11:20
  • 1741

Raspberry Pi移植Android记录(一)

树莓派是一款基于ARM的微型电脑主板,以SD卡为内存硬盘,卡片主板周围有两个USB接口和一个网口,可连接键盘、鼠标和网线,同时拥有视频模拟信号的电视输出接口和HDMI高清视频输出接口,以上部件全部整合...
  • u012489752
  • u012489752
  • 2014年03月05日 10:26
  • 1326

Raspberry Pi3 安装 ROS桌面完整版攻略

ROS(ROS,Robot Operating System)机器人操作系统是一个机器人软件平台,它能为异质计算机集群提供类似操作系统的功能。 Raspberry Pi(树莓派)是一款针对电脑业余爱...
  • abilityjh
  • abilityjh
  • 2016年10月19日 12:59
  • 618

树莓派(Raspberry Pi)瞎捣鼓

本周入手了新玩具Raspberry Pi 3 model B,利用周末稍微玩了一下,感觉体验还行,可以用来当个小私服来用或者用来当电视盒子娱乐用。 点赞点:支持无线网络和蓝牙哦 吐槽点:貌似没有电...
  • dushenzhi
  • dushenzhi
  • 2016年04月17日 00:07
  • 1627

【智能家居】Raspberry Pi GPIO接口篇

General Purpose Input Output (通用输入/输出)简称为GPIO,或总线扩展器,利用工业标准I2C、SMBus或SPI接口简化了I/O口的扩展。当微控制器或芯片组没有足够的I...
  • johnnycode
  • johnnycode
  • 2014年12月11日 06:56
  • 11081

Raspberry Pi: 系统安装及配置(SSH、ROOT账号、扩张可用空间、软件源、IP)

操作系统下载树莓派官方 Raspbian 系统下载:http://www.raspberrypi.org/downloads 或直接下载 http://downloads.raspberrypi....
  • IOIO_
  • IOIO_
  • 2015年05月20日 08:25
  • 1389

Raspberry Pi 3学习系列——基本使用

概述树莓派其实就是一个微型的计算机,我们可以在上面实现很多PC机的功能装各种操作系统、搭建服务器。但是不同的是在树莓派上有很多GPIO引脚,我们可以通过树莓派来控制这些引脚传输物理信号,比如让led灯...
  • Kelsey98
  • Kelsey98
  • 2018年01月02日 11:06
  • 40
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Python, Crawler and Raspberry Pi
举报原因:
原因补充:

(最多只允许输入30个字)