python网页数据抓取(Python探索之创建二叉树Python搜索路径、浅谈python中的区别)
优采云 发布时间: 2021-11-11 15:21python网页数据抓取(Python探索之创建二叉树Python搜索路径、浅谈python中的区别)
Python数据捕获分析
编程模块:requests、lxml、pymongo、time、BeautifulSoup
首先获取所有产品的类别 URL:
def step(): try: headers = { 。。。。。 } r = requests.get(url,headers,timeout=30) html = r.content soup = BeautifulSoup(html,"lxml") url = soup.find_all(正则表达式) for i in url: url2 = i.find_all('a') for j in url2: step1url =url + j['href'] print step1url step2(step1url) except Exception,e: print e
我们在对产品进行分类时,需要判断我们访问的地址是一个产品还是另一个分类的产品地址(所以我们需要判断我们访问的地址是否收录if判断标志):
def step2(step1url): try: headers = { 。。。。 } r = requests.get(step1url,headers,timeout=30) html = r.content soup = BeautifulSoup(html,"lxml") a = soup.find('div',id='divTbl') if a: url = soup.find_all('td',class_='S-ITabs') for i in url: classifyurl = i.find_all('a') for j in classifyurl: step2url = url + j['href'] #print step2url step3(step2url) else: postdata(step1url)
当我们的if判断为true时,我们将获取第二页的类别URL(第一步),否则我们将执行postdata函数来抓取网页的产品地址!
def producturl(url): try: p1url = doc.xpath(正则表达式) for i in xrange(1,len(p1url) + 1): p2url = doc.xpath(正则表达式) if len(p2url) > 0: producturl = url + p2url[0].get('href') count = db[table].find({'url':producturl}).count() if count 1: td = i.find_all('td') key=td[0].get_text().strip().replace(',','') val=td[1].get_text().replace(u'\u20ac','').strip() if key and val: cost[key] = val if cost: dt['cost'] = cost dt['currency'] = 'EUR' #quantity d = soup.find("input",id="ItemQuantity") if d: dt['quantity'] = d['value'] #specs e = soup.find("div",class_="row parameter-container") if e: key1 = [] val1= [] for k in e.find_all('dt'): key = k.get_text().strip().strip('.') if key: key1.append(key) for i in e.find_all('dd'): val = i.get_text().strip() if val: val1.append(val) specs = dict(zip(key1,val1)) if specs: dt['specs'] = specs print dt if dt: db[table].update({'sn':sn},{'$set':dt}) print str(sn) + ' insert successfully' time.sleep(3) else: error(str(sn) + '\t' + url) except Exception,e: error(str(sn) + '\t' + url) print "Don't data!"
最后运行所有程序,对数值数据进行分析处理并存入数据库!
以上就是本文详细介绍python+mongodb数据捕获的全部内容,希望对大家有所帮助。有兴趣的朋友可以继续参考本站:创建二叉树的Python探索、修改Python搜索路径的Python探索、浅谈python中copy和deepcopy的区别等,如有问题欢迎留言讨论一起。
以上就是python+mongodb数据捕获的详细介绍。更多详情请关注其他相关html中文网站文章!