先附上数据:
<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做毕业设计所以还希望有高人能帮忙指点一下, 感激不尽!
你的定位有问题, 按照你的第三种改了改如下:
另外,如果要用
BeautifulSoup
就别用正则了;正则,Bs, xpath 选择一个就好。