网络数据采集过程中你应该考虑的两个问题:
- 该数据采集器需要消耗的网络流量(越少越好);
- 该数据采集器对目标网站服务器的负载(越低越好);
采集网站数据的思路:
- 需要通过输入关键字符构建一个初始的网站URL链接;
- 通过解析网页遍历所有的链接,使用正则表达式筛选自己需要的链接;
- 在返回的链接中随机选择一个链接,再次循环;
需要注意: - 正则表达式构建目标链接需要嵌在BeautifulSoup中的find或findall使用;
- 使用random模块生成随机数时,为了保证随机数种子的不同,建议使用计算机中当时的时间。如”random.seed(datetime.datetime.now()) “
以下是在维基百科中输入china后返回的链接
from urllib.request import urlopen
from bs4 import BeautifulSoup
import datetime
import random
import re
random.seed(datetime.datetime.now())
def get s(articleUrl):
html = urlopen(\"http://en.wikipedia.org\"+articleUrl)
bsObj = BeautifulSoup(html)
return bsObj.find(\"div\", {\"id\":\"bodyContent\"}).findAll(\"a\",href=re.compile(\"^(/wiki/)((?!:).)*$\"))
s = get s(\"/wiki/china\")
while len( s) > 0:
newArticle = s[random.randint(0, len( s)-1)].attrs[\"href\"]
print(newArticle)
s = get s(newArticle)
继续阅读与本文标签相同的文章
上一篇 :
vue 实践技巧合集
下一篇 :
SLAM+AR 技术与应用的一些思考
-
运营专家详解“花呗分期”
2026-05-18栏目: 教程
-
谈一谈 iOS 的锁
2026-05-18栏目: 教程
-
《Android自定义控件开发入门与实战》| 每日读本书
2026-05-18栏目: 教程
-
除了吃月饼,中秋节还能干啥? | 9月12号栖夜读
2026-05-18栏目: 教程
-
图数据库爱好者的聚会在谈论什么?
2026-05-18栏目: 教程
