Chapter 13:Understanding HTML&Assignment(2)
来源:互联网 发布:小米淘宝旗舰店优惠券 编辑:程序博客网 时间:2024/04/28 12:21
先贴代码,这个任务主要是抽取链接到其他页面的超链接,然后进入,在抽取,再进入。如此反复。(抽取几次代码中是根据用户输入的次数决定)
import urllibfrom BeautifulSoup import *lst=list()i=0url = raw_input('Enter url:')count=raw_input('Enter count:')position=raw_input('Enter position:')def crawl(url): html = urllib.urlopen(url).read() soup = BeautifulSoup(html) tags = soup('a') for tag in tags: lst.append(tag.get('href', None))# url = lst[int(position)-1]for i in range(int(count)+1): print url crawl(url) url = lst[int(position)-1] lst=[]
我用的是def一个函数然后递归调用的方法。
这次主要遇到的两个问题,
一个是构造的list,在每次进入函数时应该将它清零,否则输出的url将一直是第一次的。(因为其他的会被append()到后面)
二是关于能否在函数中修改传入的参数(本例中为url)的值,在这个例子中是不可以(参见crawl()中我注释掉的那行),但是我还没找到原因,如果在函数中修改url的值,同样一直输出第一次找到的url。
*python中设定要几次循环的方法:
for i in range(4)
则i会从0循环到3
0 0
- Chapter 13:Understanding HTML&Assignment(2)
- Chapter 13:Understanding HTML&Assignment
- Chapter 2: Understanding the Value Stream
- Chapter 9 :Dictionaries (Assignment)
- Chapter 10 tuplesn&Assignment
- Chapter 15:JSON Assignment
- Understanding Unix/Linux Programming note:chapter 2, chapter 3, chapter 4
- 《Understanding the Linux kernel》学习笔记 Chapter 2: Memory Addressing
- Chapter 11 Regular Expressions&Assignment
- Chapter 9 Dictionaries Assignment 9.4
- Chapter 1---Understanding Global Concepts
- Assignment 2
- Understanding Unix/Linux Programming 笔记:chapter 13:基于数据报(Datagram)的编程:编写许可证服务器
- 《Understanding the Linux kernel》学习笔记 Chapter 13: I/O Architecture and Device Drivers
- Chapter 23: Termination Handlers(2)Understanding Termination Handlers by Example(2)
- Chapter 23: Termination Handlers(2)Understanding Termination Handlers by Example(1)
- Chapter 23: Termination Handlers(2)Understanding Termination Handlers by Example(3)
- Chapter 23: Termination Handlers(2)Understanding Termination Handlers by Example(4)
- hdu5379(树形dp)
- android之在activity中控制另一个activity的UI更新_如何在activity之间传递handler&利用broadcast广播机制
- POJ 2532 Star
- SAS:where 语句
- Linux常用软件总结
- Chapter 13:Understanding HTML&Assignment(2)
- IP数据报格式解读
- 第五章 深度神经网络为何很难训练
- VE设计#2表现层:listPanelb
- 搜狗2016校园招聘之编程题解析-大数据开发
- C++作业
- 第六章 深度学习(上)
- 工厂、单例、宏
- leetcode 202. Happy Number