当前位置: 首页 > news >正文

智能建站网站模板网页代码大全详解

智能建站网站模板,网页代码大全详解,汕头第一网告别单身,宣城市建设监督管理局网站下载爬虫一般指从网络资源的抓取#xff0c;通过Python语言的脚本特性#xff0c;配置字符的处理非常灵活#xff0c;Python有丰富的网络抓取模块#xff0c;因而两者经常联系在一起Python就被叫作爬虫。爬虫可以抓取某个网站或者某个应用的内容提取有用的价值信息。有时还可以…爬虫一般指从网络资源的抓取通过Python语言的脚本特性配置字符的处理非常灵活Python有丰富的网络抓取模块因而两者经常联系在一起Python就被叫作爬虫。爬虫可以抓取某个网站或者某个应用的内容提取有用的价值信息。有时还可以模拟用户在浏 览器或app应用上的操作行为从而实现程序自动化。 1、爬虫架构 爬虫架构通常由5个部分组成分别是调度器、URL管理器、网页下载器、网页解析器、应用程序。 调度器相当电脑的CPU主要负责调度URL管理器、下载器、解析器之间的协调工作。URL管理器包括待爬取的URL地址和已爬取的URL地址防止重复抓取URL和循环抓取URL。实现URL管理器通常有三种方式通过内存、数据库、缓存方式实现。网页下载器通过传入一个URL地址来下载网页将网页转换成一个字符串网页下载器有urllib2(Python官方基础模块包括需要登录、代理、和cookierequests(第三方包)。网页解析器用于某个网页字符串进行解析可以按照我们的要求来提取出有用的信息也可以根据DOM树的解析方式来解析。常用的解析器有html.parser(python自带的、beautifulsoup(也可以使用python自带的html.parser进行解析也可以使用lxml进行解析相对于其他几种来说要强大一些、lxml(可以解析 xml 和 HTML)通过html.parser 和 beautifulsoup 以及 lxml 都是以DOM 树的方式进行解析。应用程序用于从网页中提取的有用数据组成的一个应用。 2、爬虫实现 2.1、Url管理器(基于内存) class UrlManager():url 管理器,用来装载网址所有地址def __init__(self):# 新url 集合self.new_urls set()# 旧url 集合self.old_urls set()def add_new_url(self, url):添加新的url到集合:param url: url:return:if url is None or len(url) 0:returnif url in self.new_urls or url in self.old_urls:returnself.new_urls.add(url)def add_new_urls(self, urls):批量添加urls:param urls: url:return:if urls is None or len(urls) 0:returnfor url in urls:self.add_new_url(url)def get_url(self):获取url: 从new_urls集合获取url,放入到old_urls:return:if self.has_new_url():url self.new_urls.pop()self.old_urls.add(url)return urlelse:return Nonedef has_new_url(self):判断是否有新的url:return:return len(self.new_urls) 0if __name__ __main__:url_manager UrlManager()url_manager.add_new_url(url1)url_manager.add_new_urls([url1,url2])print(url_manager.new_urls, url_manager.old_urls)print(# * 30)new_url url_manager.get_url()print(url_manager.new_urls, url_manager.old_urls)print(# * 30)new_url url_manager.get_url()print(url_manager.new_urls, url_manager.old_urls)print(# * 30)print(url_manager.has_new_url())2.2 网页解析 import re from utils import url_manager import requests from bs4 import BeautifulSoupdef download_all_urls(root_url):爬取根网址所有页面的url:param root_url: 根网址地址:return:urls url_manager.UrlManager()urls.add_new_url(root_url)fout open(craw_all_pages.txt, w, encodingutf-8)while urls.has_new_url():curr_url urls.get_url()r requests.get(curr_url, timeout5)r.encoding utf-8if r.status_code ! 200:print(error, return status_code is not 200, curr_url)continuesoup BeautifulSoup(r.text, html.parser, from_encodingutf-8)title soup.title.stringfout.write(%s\t%s\n % (curr_url, title))fout.flush()print(success: %s, %s, %d % (curr_url, title, len(urls.old_urls)))links soup.find_all(a)for link in links:href link.get(href)if href is None:continue#模式匹配pattern r^https://www.runoob.com/python/\s.html$if re.match(pattern, href):urls.add_new_url(href)fout.close()if __name__ __main__:#定义根网址urlroot_url https://www.runoob.com/python/python-tutorial.htmldownload_all_urls(root_url) 3、经典案例 例如读取某网站Top250电影。 import pprint import json import requests from bs4 import BeautifulSoup import pandas as pd # requests 请求网站地址 # beautifulsoup4 解析网址的elements(div,class,a,img id)等 # pandas 将数据写入到excel # 其他额外安装包openpyxl # 构造分页数字列表(步长/pageSize/step25) page_indexs range(0, 250, 25) list(page_indexs)def download_all_htmls(root_url, headers):下载所有页面的html内容,用于后续分析:return:htmls []for idx in page_indexs:url %s?start%dfilter % (root_url, idx)# url fhttps://movie.douban.com/top250?start{idx}filterprint(craw html:, url)r requests.get(url, timeout5, headersheaders)if r.status_code ! 200:raise Exception(error)htmls.append(r.text)return htmlsdef parse_single_html(html_doc):soup BeautifulSoup(html_doc, html.parser)article_items (soup.find(div, class_article).find(ol, class_grid_view).find_all(div, class_item))datas []for item in article_items:rank item.find(div, class_pic).find(em).get_text()info item.find(div, class_info)title info.find(div, class_hd).find(span, class_title).get_text()stars (info.find(div, class_bd).find(div, class_star).find_all(span))rating_star stars[0][class][0]rating_num stars[1].get_text()comments stars[3].get_text()datas.append({rank: rank,title: title,rating_star: rating_star.replace(rating, ).replace(-t, ),rating_num: rating_num,comments: comments.replace(人评价, )})return datasdef save_to_excel(all_datas):保存解析后数据到excel:param all_datas: 传人数据:return:# print tabledf pd.DataFrame(all_datas)print(df)df.to_excel(豆瓣电影TOP250.xlsx)if __name__ __main__:# 模拟用户行为headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36}# 定义根网址urlroot_url https://movie.douban.com/top250htmls download_all_htmls(root_url, headers)# beatiful print textpprint.pprint(parse_single_html(htmls[0]))# extend迭代添加到list,保存到excelall_datas []for html in htmls:all_datas.extend(parse_single_html(html))print(len(all_datas))save_to_excel(all_datas)
http://www.dnsts.com.cn/news/66568.html

相关文章:

  • 有没有什么网站专门帮人做问卷做淘宝客网站需要注意什么
  • 深达网站制作深圳公司wordpress网站换字体
  • c 网站做微信支付功能商业网站图片
  • 网站排名软件淘宝做链接有哪些网站可以做
  • 北京网站备案速度北京城建一建设发展有限公司网站
  • 网站没有根目录海口市建设工程质量安全监督站网站
  • 手机网站 宽度品牌建设不足怎么表达
  • 使用阿里云做镜像网站校园交易网站建设论文
  • 企业建设网站多少钱wordpress新手基础
  • 纹身网站建设卫浴网站建设
  • 网站建设 技术规范书中智人力资源管理咨询有限公司
  • 网站建设运维方案wordpress配置qq邮箱
  • 找做网站公司需要注意什么购物网站成功案例
  • 宁波网站建设模板下载网站开发 保修期
  • 南沙网站建设哪家好买服务器做网站
  • 网站应用是什么wordpress中文版下载地址
  • 网站开发有哪些常用工具wordpress网易插件怎么用
  • 建网站打开需要验证室内设计方案网站
  • 做中东服装有什么网站免费全部游戏大全
  • 网站快速优化排名方法建设掌上银行官方网站
  • 网站制作设计收费标准福州seo优化排名推广
  • 贵州网站建设系统运营推广
  • 建设银行校园招聘网站东莞长安网站优化
  • 电子商务网站的建设收益公众号小程序是什么
  • 通辽市工程建设网站深圳市工程建设交易中心服务主页
  • 做淘宝内部优惠券网站要钱么wordpress这么安装
  • 网站建设 免费汕头网站建设制作厂家
  • 研究网站平台建设工作动态华仁建设网站
  • php网站留言石家庄的网站开发公司
  • 做一下网站需要什么条件wordpress 默认模版