网络数据采集的例子,有关find函数等等的疑问
来自 Python网络数据采集的例子:
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
random.seed(datetime.datetime.now())
def getLinks(articleUrl):
html = urlopen("http://en.wikipedia.org"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find("div", {"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
links = getLinks("/wiki/Kevin_Bacon")
while len(links) > 0:
newArticle = links[random.randint(0, len(links)-1)].attrs["href"]
print(newArticle)
links = getLinks(newArticle)
问题一: return bsObj.find("div", {"id":"bodyContent"}).findAll("a", href=re.compile("^(/wiki/)((?!:).)*$"))
这段代码里面, find函数后面为什么可以加findAll,即写成 XXX.find().findAall() 的形式?
问题二:newArticle = links[random.randint(0, len(links)-1)].attrs["href"]
此段代码 像 links[].attrs[] 之类的写法是如何依据的?可以这样写的原理?
新人求教~~谢谢!
相关阅读:
maven 私服同步有没有可能出错
怎样用java获得想要的日期?
多线程下对一个串多次调用strok后strlen报段错误
为什么这个标签带着下划线呢?
jquery ajax请求后,不论结果如何,success和error都会执行
苹果手机在微信内置浏览器里fixed定位的元素错位问题
如何设计实现OpenNMS的事件通知
有没有比较简洁的java学习教程
laravel中建表为何要用migration来操作数据库?
关于Ai导出svg的问题
个人网站的收款方案
ubuntu 更改默认shell,导致root su无法登录?
这种前端Javascript是做什么用的
python 解析网页不出来
请问我本地这个虚拟主机的配置到底哪里问题?
在JavaScript中浏览器(或者其他宿主环境)对变量的搜寻有哪些方式?
IOS sdk为什么提示找不到HappyDNS.h
在android布局文件中给一个LinearLayout包裹的TextView绘制分割线?
ajax回调函数问题
js 延迟加载在移动端的应用