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

北京做vr网站咋么做网站在电脑上

北京做vr网站,咋么做网站在电脑上,除尘环保设备网站模板,申请网站备案要多久欢迎关注公众号K的笔记阅读博主更多优质学习内容 上一篇文章#xff1a;Python爬虫初级#xff08;十二#xff09;—— 新闻消息抓取实战 实战阶段一#xff1a;分析首页大板块 URL 我们首先打开待爬取页面 —— 水木社区的首页#xff1a;http://www.newsmth.net/nF…欢迎关注公众号K的笔记阅读博主更多优质学习内容 上一篇文章Python爬虫初级十二—— 新闻消息抓取实战 实战阶段一分析首页大板块 URL 我们首先打开待爬取页面 —— 水木社区的首页http://www.newsmth.net/nForum/#!mainpage进入后页面如下 我们看到左边有很多讨论区板块我们点进去试试 我们现在就已经点进去了休闲娱乐讨论区在这个讨论区中我们可以看到最上面的链接http://www.newsmth.net/nForum/#!section/2那这个链接就很有灵魂了我们很容易就能猜到只要我们修改不同的 section我们就可以进入不同的讨论区我们进入讨论区后可以看到有不同的板块 实战阶段二获取子板块 URL 我们希望获取到这些板块的链接和标题但点进去之后发现这些板块并不像它的上一级打开一样有 section 给我们选择它是一个个的板块名称的英文有人或许会想我们可以直接把这些对应的名称输入字典翻译过来再输回来不就可以了吗但事实上每一个英文单词可能有不同的表达而且就算我们能够确定他们的表达我们还得建一个字典爬虫这多麻烦啊。 我们先试着查看一下这篇网页的 notwork打开 network 再点击刷新我们筛选 XML 类型的数据 事实上 XML 的数据并不多我们只需要都看一看他们的响应值就可以找到这样一个汇总了所有条目信息的数据我们点开这条 XML 的消息头 将对应的请求网址输入 POSTMAN 工具点击 send 后得到对应的消息头 点击最右侧的 code此时它就会把我们所需的 headers 返回给我们 我们直接复制 headers 部分然后就按套路就能得到响应了如果连套路都不会的话大家赶紧复习一下前面的内容requests 实战最好把前前后后的知识都补一遍 下面是这个部分的代码 import requests import re from bs4 import BeautifulSoup from lxml import etreeurl http://www.newsmth.net/nForum/slist.json?uidguestrootsec-9 headers {User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:75.0) Gecko/20100101 Firefox/75.0,Host: www.newsmth.net,Accept: application/json, text/javascript, */*; q0.01,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2,Accept-Encoding: gzip, deflate,X-Requested-With: XMLHttpRequest,Connection: keep-alive,Referer: http://www.newsmth.net/nForum/,Cookie: Hm_lvt_bbac0322e6ee13093f98d5c4b5a109121587005280; main[UTMPUSERID]guest; main[UTMPKEY]40324888; main[UTMPNUM]37000; Hm_lpvt_bbac0322e6ee13093f98d5c4b5a109121587005521; main[XWJOKE]hoho; __gadsIDc8ebf8ba150e0059:T1587005311:SALNI_MZ_fNqTOR1qs7ZaHX7DWAcYp5CD8A; left-index00100000000,Cache-Control: max-age0,Cookie: main[UTMPUSERID]guest; main[UTMPKEY]10851192; main[UTMPNUM]83713 }def get_text(url):try:res requests.get(url, headersheaders)res.raise_for_statusres.encoding res.apparent_encodingtext res.textreturn textexcept:return text get_text(url) text text.replace([, ) text text.replace(], ) text_split text.split(,) href_list [] title_list [] for i in range(len(text_split)):str_i text_split[i]pat1 re.compile(ra href\\(.*?) title)pat2 re.compile(rtitle\\(.*?)\\)href_ re.findall(pat1, str_i)title_ re.findall(pat2, str_i)if (len(href_)) 0 (len(title_) 0):href_list.append(href_[0])title_list.append(title_[0]) print(href_list,\n,title_list)href_list [http://www.newsmth.net href.replace(\\, ) for href in href_list] href_list大家最好都手敲一遍事实上这段代码大家完全不用看我的自己都可以敲出来这是最终得到的结果URL 和标题信息都有了 我们上面得到的标题可以作为我们建立新文件夹的依据我们得到的 URL我们可以进一步分析得到文章的条件然后按照套路抓取到所有的文章。接下来我们就看看怎么通过这些 URL 得到对应的文章 实战阶段三获取子版块下所有文章 我们任意点进去一个子版块以 AppleDev 子版块为例依然是点开 network 刷新得到一些 ajax 信息 ajax 在我们前面的 Ajax 详解 已经有讲过了我们仍然按照套路抓取链接得到内容然后由正则表达式匹配文章链接文章链接的形式我们可以任意点开一篇文章观察到或者也可以直接通过返回的信息得到下面是抓取的代码 res_ requests.get(http://www.newsmth.net/nForum/board/AppleDev?ajax, headersheaders) res_.encoding res_.apparent_encoding text res_.text pat3 re.compile(r(/nForum/article/AppleDev/\d)) href_text re.findall(pat3, text) total_href_text [http://www.newsmth.net href for href in href_text] print(total_href_text)我们将得到的链接内容进行截图 不出意料我们点进去任何一个链接看到的文章都正是我们想要得到的内容 实战阶段四编写结构化代码 我们现在直接开始编写结构化的代码 首先导入我们所需要的包 import requests import re from bs4 import BeautifulSoup from lxml import etree from selenium import webdriver有人可能会好奇为什么还要导入 selenium 包事实上在爬取文章内容的时候我试图分析了一波网页源代码和 Network 的 response似乎并没有好的方法获得文章内容于是我果断放弃选择了相对低效的 selenium至于问为什么低效是因为我的代码中每一次都需要打开 passage 的网页才能抓取当然现在有不需要打开网页的 selenium 方法别问问就是懒。 下面我们写一个很常用很老套的函数从 URL 获得文章的 Text def getText(url):try:res requests.get(url)res.raise_for_statusres.encoding res.apparent_encodingreturn res.textexcept:return 这几行代码如果大家看了前几期文章现在倒着都能默出来了吧如果没有的话赶紧去看看前面所有爬虫系列的文章噢~ 然后我们定义一个函数获取所有的 Section 的 URL def getSectionURL():url_list []base_url rhttp://www.newsmth.net/nForum/#!section/for i in range(10):url_list.append(base_urlstr(i))return url_list下面这堆代码的用途是获得 Section 的名称大家可以用这个名称在爬取完文章后建立文件夹保存文章 def getSectionList():sectionTitleURL http://www.newsmth.net/nForum/slist.json?uidguestrootlist-sectiontext getText(sectionTitleURL)textList text.split(,)textList [i for i in textList if i.endswith(/a)]for i in range(len(textList)):textList[i] re.findall(r\\(.*?)/a, textList[i])textList [i[0] for i in textList if len(i)0]return textList下面这段代码用于爬取大板块下面的所有子版块的链接和标题 def getSubSectionList(section_num):url http://www.newsmth.net/nForum/section/ str(section_num) ?ajaxtext getText(url)soup BeautifulSoup(text, html)hrefList soup.select(td a)hrefList [str(href) for href in hrefList]hrefList [href for href in hrefList if href.startswith(ra href/nForum/board)]pat1 re.compile(ra href(.*?))pat2 re.compile(r(.*?)/a)HrefList []TitleList []for i in range(len(hrefList)):href re.findall(pat1, hrefList[i])href http://www.newsmth.net href[0]title re.findall(pat2, hrefList[i])HrefList.append(href)TitleList.append(title[0])return HrefList, TitleList下面这行代码用于从上面获得的 SubSectionURL 中获得所有文章的 URL 链接 def getPassageURL(SubSectionURL):TextURL SubSectionURL ?ajaxtext getText(TextURL)title re.findall(rnForum/board/(.*)\?ajax, TextURL)[0]pat re.compile(rhref/nForum/article/ re.escape(title) r/(\d{2,10}))article_num re.findall(pat, text)href_list [rhttp://www.newsmth.net/nForum/#!article/ title / href for href in article_num]return href_list下面这行代码用于从上面的文章 URL 中解析出文章内容评论区内容被截掉了大家可根据需要修改代码 def getPassageFromURL(PassageURL_List):text_List []i0for url in PassageURL_List:driver webdriver.Firefox()driver.get(url)page driver.page_sourcesoup BeautifulSoup(page)content soup.select(td[class~a-content])passage re.findall(rtd classa-content(.*?)/td, str(content[0]))print(passage)text_List.append(passage)driver.close()return text_List大功告成大家试着运行一下代码看看能不能跑通吧~
http://www.hkea.cn/news/14569197/

相关文章:

  • 为网站开发appwordpress+展开
  • h5移动网站开发校车网站建设
  • 建网站需要多少钱个人特种作业证查询
  • 新乡市网站建设有哪些公司江西赣州最新消息
  • 图片素材网站免费大推荐怎样建一个免费网站
  • 网站站外推广方法新开神途手游发布网站
  • 网站静态化 好处装修素材的网站大全
  • html5网站 欣赏wordpress 附件清理
  • 做网站用的小图标如何做免费网络推广
  • 有关网站建设的标题城乡建设证书查询官网
  • 凡科建站官网登录入口网页版电器网站模板
  • 网站内容建设平面设计seo建站系统
  • 品牌电商网站河北网站建设方案详细
  • 北京网站建设的价格天深圳宝安区租房子多少钱一个月
  • 做网站框架可用jpg图吗wordpress gonzo
  • 电子商务网站开发 pptseo优化及推广如何运营
  • 网站设计团队有哪些职业工程信息网站建设
  • 介休网站建设wordpress容器
  • 再高权重网站加自己的链接会容易被收录吗竞价托管咨询微竞价
  • 淘宝做网站给了钱室内设计联盟官方网站图片
  • 安徽省住房和城乡建设部网站有没有类似书签的wordpress主题
  • 做购物网站用什么应用wordpress首页乱码
  • 苏州房地产网站建设鹏翔科技 网站建设
  • 向国外支付网站开发费企业做网站需要那些条件
  • 网站建设与维护网络公司是做什么的
  • 鹰潭网站建设做百度移动网站
  • 对百度网站进行分析培训视频网站
  • 推拿网站制作小程序源码怎么导入
  • 电商网站策划源汇区建设局网站
  • 利鑫做彩票网站修改wordpress的站点地址