爬虫的基本流程

元素筛选有不同的方式,根据元素的属性,或者元素的相对位置(只要找到这个元素是唯一的,可以通过在网页的源码中搜索),总的来讲,需要多试,尝试中找出可用的定位方法

1、把页面放入到BeautifulSoup容器当中

with open('D:/xxxxx/the_blah.html',
'r')as web_data:
soup = BeautifulSoup(web_data, 'lxml')

2、获取页元素

images = soup.select('body > div.main-content > ul > li > img')
titles = soup.select('body > div.main-content > ul > li > h3 > a')
info = soup.select('body > div.main-content > ul > li > p')

3、筛选元素的具体信息

for image, title, info in zip(images, titles, infos):
data = {
'title': title.get_text(), #获取标签的值
'image': image.get('src'), #获取标签中的属性
'info': info.get_text()
}
爬取真实网页的流程:
1、使用request向服务器请求获取网页内容:
url='xxxx'
web_data = requests.get(url)  #获取服务器response的网页
soup = BeautifulSoup(web_data.text, 'lxml')
2、描述要爬取的元素位置
titles = soup.select('div.listing_title > a')
images = soup.select("div.photo-wrapper")
tags = soup.select('li.hotel_icon')
3、获取元素参数值
for title, image, tag in zip(titles, images, tags):
data = {
'title': title.get_text(),
'image': image.get('style'),
'tag': list(tag.stripped_strings)
}
print(data)
4、构造向服务器提交的参数headers
headers={
'User-Agent':'',
'Cookie':'',
}
url_save=''
web_data=requests.get(url_save,headers=headers)





 

posted @ 2018-05-06 11:04  onlyhold  阅读(291)  评论(0编辑  收藏  举报