首页 > 【求教】:如何用BeautifulSoup爬取指定标签下的内容

【求教】:如何用BeautifulSoup爬取指定标签下的内容

先附上数据:

<div class="p-name p-name-type-2">
        <a target="_blank" title="Apple iPhone 6 (A1589) 16GB 金色 移动4G手机" href="//item.jd.com/1217493.html" onclick="searchlog(1,1217493,0,1,'','flagsClk=4194952')">
            <em>Apple <font class="skcolor_ljg">iPhone</font> <font class="skcolor_ljg">6</font> (A1589) 16GB 金色 移动4G手机</em>
            <i class="promo-words" id="J_AD_1217493"></i>
        </a>
    </div>

用bs想要爬取title和href里面的内容,由于初学试了好几种办法,未果。先附上代码:

第一次尝试:
#!/usr/bin/python
2 #coding:utf-8
3 from bs4 import BeautifulSoup
4 import re
5
6
7 soup = BeautifulSoup(open('jd.html'),"lxml") #已经爬下的页面(上面代码为其中一段)
8 reg=u"(title=.*?\w+[\u4e00-\u9fa5]+)"
9 Res = re.compile(reg)
10 source = soup.find_all(class_ = 'p-name p-name-type-2',text=Res)
11 for item,nu in enumerate(source):
12 print item,nu

第二次:
#!/usr/bin/python
...
7 soup = BeautifulSoup(open('jd.html'),"lxml")
8 source = soup.find_all(class_ = 'p-name p-name-type-2')
9 Res = source.body.contents[0].attrs
10 Title = Res['title']
11 Link = Res['href']

初学乍道有许多不理解,而且想用python做毕业设计所以还希望有高人能帮忙指点一下, 感激不尽!

注:爬取的页面为:view-source:http://search.jd.com/Search?keyword=iphone6&enc=utf-8&cu=true&utm_source=www.qujianglou.cn&utm_medium=tuiguang&utm_campaign=t_255634027_&utm_term=4ef47fa96b234c9c8bb875c9a92566da-p_340075007


你的定位有问题, 按照你的第三种改了改如下:

Ln [19]: a  =soup.find_all('div',{'class': 'p-name-type-2'})[0].find_all('a')[0] 
In [20]: print a['href']
//item.jd.com/1217493.html

In [21]: print a['title']
Apple iPhone 6 (A1589) 16GB 金色 移动4G手机

另外,如果要用BeautifulSoup 就别用正则了;正则,Bs, xpath 选择一个就好。

【热门文章】
【热门文章】