要抓取一个网站,要解决下面几个问题
beautiful soup 文档:http://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html
1.用python模拟useragent为android的浏览器:
useragent = "Mozilla/5.0 (Linux; U; Android 2.2; en-gb; GT-P1000 Build/FROYO) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1"
url = "http://xxx"
request = urllib2.Request(url)
request.add_header('User-Agent',useragent)
html = urllib2.urlopen(request,timeout=5).read()
#url编码
urllib.quote(‘abc edf')
2.beautiful soup 用的最多的一些方法
soup = BeautifulSoup(html)
print soup.strong.string
print soup.find("div",class_='xxx').string
print soup.find("span",class_='pos').next_sibling.string
oneDiv.next_sibling.a.get("href")
获取一个div,并且class='xxx' 的一个div,.string 为获取这个div里的文本。
.next_sibling 下一个同级节点。
3.正则提取文本中以http开头和以html结尾的文本:
p=re.compile(r"""(http://.*.html)""").search(oneString)
if p:
return p.group(1)
4.下载文件
urllib.urlretrieve("http://xxx/asd.jpg",'apple.jpg')
抓取就可以开始了,然后对应上出现的一场来解决问题就行。