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

苏州高新区建设局网站外贸网站如何做

苏州高新区建设局网站,外贸网站如何做,柳州网站建设 来宾市网站制作,免费网站注册永久文章目录 selenium爬虫——以爬取澎湃新闻某搜索结果为例前言需要导入的包需要避雷的点webdriver的版本要与浏览器一致如果使用爬虫打开了新网页,要记得跳转XPath和selector都可以直接复制爬取多网页时记得try打入word时调整字体的问题 完整程序爬取效果 selenium爬…

文章目录

  • selenium爬虫——以爬取澎湃新闻某搜索结果为例
    • 前言
    • 需要导入的包
    • 需要避雷的点
      • webdriver的版本要与浏览器一致
      • 如果使用爬虫打开了新网页,要记得跳转
      • XPath和selector都可以直接复制
      • 爬取多网页时记得try
      • 打入word时调整字体的问题
    • 完整程序
    • 爬取效果

selenium爬虫——以爬取澎湃新闻某搜索结果为例

前言

本程序致力于实现以下目标:
(1)爬取澎湃新闻关于“反腐”的全部文章内容;
(2)按标题、链接将其整理到excel中;
(3)将标题和文章整合到一个word文档中。
许久没有正经写过了,有些生疏,代码耦合度蛮高的,所幸目标达成了。

需要导入的包

import time
import docx
import xlwt
from docx.oxml.ns import qn
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

需要避雷的点

webdriver的版本要与浏览器一致

如果用的是google chrome,可以在这里找到新版本的driver;
其他浏览器的话直接百度就能找到。

如果使用爬虫打开了新网页,要记得跳转

一开始不知道这一点,试了半天都定位不到要爬取的元素,结果最后发现一直没跳转到第二个页面上,那在第一个页面上当然定位不到了……跳转的代码如下:

new_window = driver.window_handles[1]  #找第二个窗口
driver.switch_to.window(new_window) #切换到新窗口
driver.refresh()    #刷新

XPath和selector都可以直接复制

复制过程如下图所示,比自己写方便多了。
在这里插入图片描述

爬取多网页时记得try

比如这次爬取的澎湃新闻的文章,有些链接点进去是视频,是我们所不需要的,定位的位置也不一样,极有可能会报错中断。这时,就需要try-except语句来帮助我们跳过了。

try:x_path="//main/div[4]/div[1]/div[1]/div/h1"title=driver.find_element(By.XPATH, x_path)x_path = "//main/div[4]/div[1]/div[1]/div/div[2]"article=driver.find_element(By.XPATH, x_path)print(title.text)print(article.text)file.add_paragraph(article.text)
except:print("非文字")

打入word时调整字体的问题

具体程序如下:

for para in file.paragraphs:for run in para.runs:run.font.size = docx.shared.Pt(10)  #设置字体大小为10run.font.name = 'Times New Roman' #英文run._element.rPr.rFonts.set(qn('w:eastAsia'), u'楷体') # 中文

值得注意的是,中文的字体前面最好加一个u,而且qn需要单独导包:

from docx.oxml.ns import qn

完整程序

import time
import docx
import xlwt
from docx.oxml.ns import qn
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
def main():driver = webdriver.Edge()driver.get("https://www.thepaper.cn/")time.sleep(1)search=driver.find_element(By.TAG_NAME,'input')search.send_keys("反腐")time.sleep(1)x_path="//main/div/div/div/div/div/div/div/span"send_button=driver.find_element(By.XPATH,x_path)ActionChains(driver).move_to_element(send_button).click(send_button).perform()time.sleep(1)x_path="//main/div[3]/div[1]/div/div[2]/div/ul/li[2]"send_button=driver.find_element(By.XPATH,x_path)ActionChains(driver).move_to_element(send_button).click(send_button).perform()time.sleep(1)last_height = driver.execute_script("return document.body.scrollHeight")  # 获取当前页面的高度driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")time.sleep(2)driver.execute_script("window.scrollTo(0, document.body.scrollHeight/2);")last_height = driver.execute_script("return document.body.scrollHeight")while True:  # 模拟下拉操作,直到滑动到底部driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")  # 模拟下拉操作time.sleep(2)  # 等待页面加载new_height = driver.execute_script("return document.body.scrollHeight")  # 获取当前页面的高度if new_height == last_height:  # 判断是否已经到达页面底部breaklast_height = new_heightx_path="//main/div[3]/div[1]/div/div/div/ul/li/div/a"names=driver.find_elements(By.XPATH,x_path)name_text=[]name_href=[]num=-1for name in names:name_text.append(name.text)name_href.append(name.get_attribute("href"))num=num+1print(name.text)print(name.get_attribute("href"))file=docx.Document()    #创建docx对象workbook = xlwt.Workbook()sheet1 = workbook.add_sheet('sheet1', cell_overwrite_ok=True)sheet1.write(0,0,'标题')sheet1.write(0,1,'链接')for i in range(num+1):print(name_text[i])print(name_href[i])address=name_href[i]driver.get(address)file.add_paragraph(name_text[i])sheet1.write(i+1,0,name_text[i])sheet1.write(i + 1, 1, name_href[i])try:x_path="//main/div[4]/div[1]/div[1]/div/h1"title=driver.find_element(By.XPATH, x_path)x_path = "//main/div[4]/div[1]/div[1]/div/div[2]"article=driver.find_element(By.XPATH, x_path)print(title.text)print(article.text)file.add_paragraph(article.text)except:print("非文字")for para in file.paragraphs:for run in para.runs:run.font.size = docx.shared.Pt(10)  #设置字体大小为10run.font.name = 'Times New Roman' #英文run._element.rPr.rFonts.set(qn('w:eastAsia'), u'楷体') # 中文file.save("crawlerResult.docx")workbook.save('./crawlerResult.xls')if __name__=='__main__':main()

爬取效果

word共2030页295万字
在这里插入图片描述
excel共1637行(1637个文章标题,第一行为表头)
在这里插入图片描述


文章转载自:

http://oEHskpQR.znnsk.cn
http://JGXjpVJU.znnsk.cn
http://6pQbctjV.znnsk.cn
http://snOrm8nT.znnsk.cn
http://e4uFMdSa.znnsk.cn
http://US1oTME8.znnsk.cn
http://x70VhzuP.znnsk.cn
http://so9HyUzS.znnsk.cn
http://G6DS7tVe.znnsk.cn
http://3Y7gPyJd.znnsk.cn
http://j2dHswK8.znnsk.cn
http://zvVhpsCS.znnsk.cn
http://Tm6JAyjH.znnsk.cn
http://QJ6AJvC0.znnsk.cn
http://wg3YYHVB.znnsk.cn
http://HXIFmr2i.znnsk.cn
http://Oc7sDEYJ.znnsk.cn
http://HgANmoIF.znnsk.cn
http://szcDUVvD.znnsk.cn
http://tws6aS1j.znnsk.cn
http://VCNl2SNv.znnsk.cn
http://PjjAwlUZ.znnsk.cn
http://m7V0teWa.znnsk.cn
http://pXcpgWgt.znnsk.cn
http://JWAaEW6u.znnsk.cn
http://s0v3mHWQ.znnsk.cn
http://cgTrOuyT.znnsk.cn
http://b2Qs9lDC.znnsk.cn
http://QmX2gpg7.znnsk.cn
http://RQf9HJy0.znnsk.cn
http://www.dtcms.com/wzjs/683301.html

相关文章:

  • 网站上的图用美图秀秀做可以吗织梦教育网站模板
  • 花生壳怎么发布自己做的网站2020十大热点事件
  • 网站开发 简单备案网站建设承诺书
  • 网站建设价格报价wordpress采集淘宝
  • 阿里云可以放几个网站建网站的流程和费用
  • 如今流行的网站建设软件界面设计方案
  • 网站前台代码综合性门户网站是什么意思
  • 泰州网站设计培训网站设计建设定制
  • 个人可以备案企业网站吗深圳做网站哪家公司最好
  • 儿童网站模板免费下载网站的积分系统怎么做的
  • 做动态图片的网站吗wordpress情侣模板
  • 长春建设工程管理中心网站室内装修设计师工资一般多少钱
  • 网页模版网站大连网络设计有限公司
  • 网站开发好就业吗做一个购物商城网站多少钱
  • 网站推广具体内容简要说明乐达淄博网站建设制作
  • 民治网站设计圳网站建设公司wordpress里的关键词在哪设置
  • 网站开发 q3687474什么叫域名什么是域名
  • 河北建设厅网站三类人网站后台无编辑器
  • 北京网站建设推广网站留言板块怎么做
  • 网站设计机构图电子商务静态网站建设心得
  • 成都网站设计如何编辑自己的网站
  • 易语言做网站客户端营销型网站郑州
  • 免费学设计的网站wordpress文章标题后显示栏目标题
  • 无锡网站制作哪家价格便宜dw网页制作教程练习
  • 网站pc和手机端分离怎么做网站空间哪里便宜
  • 营销型网站具备的二大能力深圳产品型网站建设
  • 开发做一个网站需要多少钱网站建设有什么需求
  • 惠州免费建站模板玛伊网站做兼职加入要多少钱
  • h5营销型网站wordpress 模板带数据库
  • h5手机网站实例四川网站建设公司 登录