python中find函数爬虫_python,网页爬虫_网络数据采集的例子,有关find函数等等的疑问,python,网页爬虫 - phpStudy...

网络数据采集的例子,有关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 延迟加载在移动端的应用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值