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

北京的餐饮网站建设建立网站的必要性

北京的餐饮网站建设,建立网站的必要性,上海网站建设优化公司,如何将微信公众号文章转wordpress前几天就想写一个爬虫系列的文章#xff0c;因为比较忙所以没有写#xff08;还不是因为懒#xff09;#xff0c;趁着现在屋里比较的凉爽#xff0c;心也比较的静#xff0c;总结下目前遇到的一些爬虫知识#xff0c;本系列将从简单的爬虫开始说起#xff0c;以后会逐…前几天就想写一个爬虫系列的文章因为比较忙所以没有写还不是因为懒趁着现在屋里比较的凉爽心也比较的静总结下目前遇到的一些爬虫知识本系列将从简单的爬虫开始说起以后会逐渐的提升难度同时会对反爬手段做一个总结以及用具体的事例来演示不同的反爬现象和实现手段。前言本系列侧重点是应用和实战所以对于软件的安装这些基本操作不做详细讲解我这里认为你已经有了一定的python基础所以对于python的安装一定会有一定的了解了这里废话不多说让我们进入正题。环境准备鉴于大多数人的系统是windows系统所以这里的所有内容都是在Windows下进行的另外推荐安装谷歌浏览器使用语言python版本3.6(低版本不能使用requests_html)。主要的爬虫模块requests_html。爬虫具备的基本条件作为一个合格的爬虫首先得有一个headers,如何理解headers我们打开谷歌浏览器然后F12,选择network选项卡打开百度的首页,然后打开然后选择其中的一个链接然后点击新弹出的窗口的headers,看到有一个Request Headers我们看到下面红框的内容这些由:组成的数据结构共同构成了一个headers在python中可以把这些字段作为一个字典传入。爬虫的代码实现下面我来看一个基本爬虫代码爬取百度的导航栏文字内容。1.导入requests_html模块。from requests_html import HTMLSession 2.创建一个session对象目的是维持一次完整的会话。sessionHTMLSession() 3.通过get方法访问网络urlhttps://www.baidu.com headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36} reqsession.get(urlurl,headersheaders) get方法需要传入两个参数一个是url一个是headers(字典类型)。一般的我们传入一个user_agent就可以愉快的使用了。(这里只是说一般的对于有先网站服务器还会监测headers的其他属性内容)。我们会获取一个response对象。拓展:如果查看requests_html的源码会发现默认是给了几个headers属性的。def default_headers()::rtype: requests.structures.CaseInsensitiveDictreturn CaseInsensitiveDict({User-Agent: default_user_agent(), #这个就是一个随机的useragentAccept-Encoding: , .join((gzip, deflate)),#接收编码类型Accept: */*,#接收文件类型Connection: keep-alive,#保持链接}) 4.获取网页返回的状态码一般的我们把200状态码认为是响应成功(并不一定是你想要的结果比如登陆失败有些也是200)。其他常见的还有404网页访问失败500服务器拒绝访问,302和301作为网页的重定向。if req.status_code200:print(ok) 5.获取正确的网页编码因为每个页面的编码不同可能导致在解析的时候出现乱码的情况对此requests_html模块为我们提供了一个可以高准确率获取编码的方法目前来看对于绝大对数html页面是没有问题的,所以可以放心使用。req.encodingreq.apparent_encoding 6.查看获取html源码此时我们已经获取了编码之后的对象了如果我们需要查看获取的内容以及编码是否正确我们可以使用text属性来获取网页的源码它是一个字符串格式的。7.xpath表达式的使用requets_html模块的一个好处就是集合了众多的网页解析模块比如bs4,pyquery,lxml等可以说相当的强大了requests_html通过response的html属性调用xpath方法来直接操作dom对象通过观察我们获取百度导航栏的标题的xpath,代码我们可以这样写。 node_listreq.html.xpath(//div[idu1]/a/text()) 简单说下上面xpath表达式的含义//从匹配选择的当前节点选择文档中的节点而不考虑它们的位置。/表示从根节点选取。后面跟的ediv表示是div节点中括号里面一般是做属性判断id就是判断id属性然后取其值为ul的后面紧跟的/a,表示上面div节点的下级所有含有a的节点,然后后面的text()是表示获取该节点的文本信息。8综合整理下上面的代码如下:from requests_html import HTMLSession from traceback import format_exc class BaiDu():def __init__(self):self.sessionHTMLSession()self.urlhttps://www.baidu.comself.headers{User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.62 Safari/537.36}self.timeout20def gethtml(self):try:reqself.session.get(urlself.url,headersself.headers,timeoutself.timeout)if req.status_code200:req.encodingreq.apparent_encodingtitle_infoself.parse_html(req)return | .join(title_info)except:print(出错了错误内容是,format_exc)def parse_html(self,req):node_listreq.html.xpath(//div[idu1]/a/text())return node_list if __name__ __main__:baiduBaiDu()titlebaidu.gethtml()print(title) 输出结果:新闻 | hao123 | 地图 | 视频 | 贴吧 | 学术 | 登录 | 设置 | 更多产品 好了今天的内容就到这内容比较的简单简单的说了下爬虫的基本思路后面会一步步加大难度如有任何问题和疑问欢迎留言。关注微信公众号:python学习开发 学习更多python知识
http://www.sadfv.cn/news/242385/

相关文章:

  • 网站空间登录电子商务网站的建设及规划
  • 网络营销咨询网站源码手机做任务网站
  • 霸州网站开发佛山h5建站模板
  • 博达网站建设流程wordpress编辑文章更新失败
  • 动漫网站开发研究内容网站开发百度百科
  • 网站ui设计报价单江苏优质网站制作公司
  • 网站域名后缀有什么用哪个网站做供求信息
  • 湘潭网站建设厦门网站制作免费网站建设资讯
  • 网站被k恢复舟山市建设信息港网站
  • 温州网站公司哪家好网推app有哪些
  • 跨境电商导购网站建设深圳恒诚信企业管理有限公司
  • 吉林省建设银行网站深圳市住房和城乡建设局网站
  • 西宁网站建设价格百度hi
  • 网络销售是做网站推广网站建设公司如何约客户
  • 怎么看网站备案官方网站做兼职
  • 重庆网站建设公佛山公共交易资源平台
  • 关于网站备案及管理的授权书山东住房和城乡建设部网站
  • 做网站怎么报价花都营销型网站
  • 二学一做网站怎么做 代刷网站
  • 旅游网站在提高用户体验方面应做哪些工作江门做网站公司开网络公司
  • 高港网站开发制作一个官网
  • ftp上传网站后怎么弄wordpress国内支付
  • 西部数码官方网站环保网站主题
  • 长春seo网络优化招聘网广州市网络优化推广企业
  • 重庆网站推广工具搭建网站架构是什么意思
  • ui网站建设站评价哪个网站是专门做男人衣服的
  • 西宁网站建设多少钱wordpress怎么添加自动推送代码
  • 教育培训手机网站模板下载义乌产品设计公司
  • 阜阳市住房和城乡建设部网站怎么做谷歌seo
  • wordpress手机ui东莞seo网站推广建设