python Beautiful soup网页解析-星座网

beautiful-soup是用来解析网页的利器。

我们先打开一个网页

code=200表示访问成功

from urllib.request import urlopen
url='http://www.xzw.com/astro/virgo/?appid=bds'
response=urlopen(url)
response.getcode()
content=response.read()

python Beautiful soup网页解析-星座网_第1张图片

接下来,我们可以用beautiful-soup来解析这个网页,生成一个beautiful-soup对象

bs_obj=BeautifulSoup(urlopen(url), 'html.parser',from_encoding='utf-8')
bs_obj.title
处女座2018年运势,处女座男生女生,处女座男生女生最配的星座,处女座的男人,Virgo-星座是按阴历还是阳历,十二星座速配查询 - 星座屋


然后可以用bs对象的find方法来查找节点,我们通过传入节点的标签和属性作为参数,返回节点的list

bs_obj.find_all('a',{'target':'_blank','hidefocus':'true'})

[,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
 ,
 ]

对于每个节点,我们可以获取它的名称,属性,文字

Node.name

节点的名称

Node['href']

节点的属性

Node.get_text()

节点的文字


node_list = bs_obj.find_all('a',{'target':'_blank','hidefocus':'true'})
for node in node_list:
    print(node.name,node['href'],node['title'],node.get_text())

a /astro/aries/ 白羊座
a /astro/taurus/ 金牛座
a /astro/gemini/ 双子座
a /astro/cancer/ 巨蟹座
a /astro/leo/ 狮子座
a /astro/virgo/ 处女座
a /astro/libra/ 天秤座
a /astro/scorpio/ 天蝎座
a /astro/sagittarius/ 射手座
a /astro/capricorn/ 摩羯座
a /astro/aquarius/ 水瓶座
a /astro/pisces/ 双鱼座

Children 节点

python Beautiful soup网页解析-星座网_第2张图片

如果我们想拿到div标签后面的所有a标签,可以用node.children

for child in bs_obj.find('div', {'class':'a-nav'}).children:
    print(child)















更多的还有find_parent, find_next_sibling等,用法都差不多,可以查看文档


你可能感兴趣的:(python,网络爬虫)