python爬虫笔记-weikipedia数据爬取

#from urllib import request

from urllib.requestimport urlopen

#from urllib.request import Request

from urllib import parse

from bs4 import BeautifulSoup

import re

#请求url并把结果用UTF-8编码

resp = urlopen("https://en.wikipedia.org/wiki/Main_Page").read().decode("utf-8")

#使用BeautiSoup去解析

soup = BeautifulSoup(resp,"html.parser")

#获取所有以/wiki/开头的a标签的href属性

listUrls = soup.find_all("a",href=re.compile("^/wiki/"))# ^表示是以wiki开头的,不是保护wiki的 , find_all返回的可以是一个正则表达式对象

# print(listUrls)

for urlin listUrls:

print(url["href"])

print("#########################################################")

#输出所有词条对应名称和url

for urlin listUrls:#循环记得加冒号

#过滤以.jpg或者.JPG结尾的链接

    if not re.search("\.(jpg|JPG)$",url["href"]):#if记得加冒号 \.表示字符点号 $表示结尾

    print(url.get_text(),"-------","https://en.wikipedia.org" + url["href"])#输出url的href的属性 有冒号的地方就要缩进



总结:urllib与BeautifulSoup

常用的方法urlopen,它可以用来请求一个地址,read()方法可以读取里面的内容,decode内容就可以进行编码。

BeautifulSoup自带utf-8的编码,所以在urlopen处写不写都可以。

代码中传给BeautifulSoup的解析器是Python自带的解析器html.parser

获取文字内容的方法有两个一个是.string,还有一个是.get_text(),区别是前者只能获取一个,后者是获取标签下所有的文字。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。