scrapy利用硒实现爬取豆瓣阅读的方法教程

  介绍

scrapy利用硒实现爬取豆瓣阅读的方法教程?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

<强>首先创建scrapy项目

命令:<代码> scrapy startproject douban_read

创建蜘蛛

命令:<代码> scrapy genspider douban_spider url

网址:https://read.douban.com/charts

关键注释代码中有,若有不足,请多指教

<强> scrapy项目目录结构如下

 scrapy利用硒实现爬取豆瓣阅读的方法教程

<强> douban_spider。py文件代码

爬虫文件

进口scrapy
  进口稀土,json
  
  从. .项目导入DoubanReadItem
  
  
  类DoubanSpiderSpider (scrapy.Spider):
  name=& # 39; douban_spider& # 39;
  # allowed_domains=[& # 39; www # 39;】
  start_urls=[& # 39; https://read.douban.com/charts& # 39;]
  
  def解析(自我,反应):
  #打印(response.text)
  #获取图书分类的url
  type_urls=response.xpath (& # 39;//div [@class=皉ankings-nav"]/[位置()在1]/@href& # 39;) .extract ()
  #打印(type_urls)
  在type_urls type_url:
  #/charts& # 63;类型=unfinished_column&指数=featured& dc=charts& dcm=charts-nav
  part_param=re.search(" # 39;图表\,# 63;(。*和# 63;)及dcs # 39;, type_url) .group (1)
  # https://read.douban.com/j/index//charts& # 63;类型=intermediate_finalized&指数=science_fiction& verbose=1
  ajax_url=& # 39; https://read.douban.com/j/index//charts& # 63; {}, verbose=1 & # 39; .format (part_param)
  收益率scrapy。请求(ajax_url调=自我。parse_ajax编码=& # 39;utf - 8 # 39;元={& # 39;request_type& # 39;: & # 39; ajax # 39;})
  
  def parse_ajax(自我,反应):
  
  #打印(response.text)
  #获取分类中图书的json数据
  json_data=https://www.yisu.com/zixun/json.loads (response.text)
  数据在json_data(“列表”):
  项=DoubanReadItem ()
  项[' book_id ']=数据(“作品”)(“id”)
  项[' book_url ']=数据(“作品”)(“url”)
  项[' book_title ']=数据(“作品”)(“标题”)
  项[' book_author ']=数据(“作品”)(“作者”)
  项[' book_cover_image ']=数据(“作品”)(“盖”)
  项[' book_abstract ']=数据(“作品”)(“文摘”)
  项[' book_wordCount ']=数据(“作品”)(“wordCount”)
  项[' book_kinds ']=数据(“作品”)(“类型”)
  #把项目收益率给Itempipeline
  收益项

<强>项目。py文件代码

项目的目标文件

 # Define报废物品的模型
  #
  #看文档:
  # https://docs.scrapy.org/en/latest/topics/items.html
  
  进口scrapy
  
  
  类DoubanReadItem (scrapy.Item):
  #这里定义的字段项:
  book_id=scrapy.Field ()
  book_url=scrapy.Field ()
  book_title=scrapy.Field ()
  book_author=scrapy.Field ()
  book_cover_image=scrapy.Field ()
  book_abstract=scrapy.Field ()
  book_wordCount=scrapy.Field ()
  book_kinds=scrapy.Field () 

<强> my_download_middle。py文件代码

所请求都有会经过下载中间件,可以通过定制中间件,来完成设置代理,动态设置请求头,自定义下载等操作

进口随机
  导入的时间
  从硒进口webdriver
  从selenium.webdriver.common.desired_capabilities进口DesiredCapabilities
  从scrapy.http.response。html进口HtmlResponse
  
  
  类MymiddleWares(对象):
  def __init__(自我):
  #请求头列表
  自我。USER_AGENT_LIST=[
  “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/537.1 (KHTML,像壁虎)Chrome/22.0.1207.1 Safari 537.1“,
  “Mozilla/5.0 (X11;横i686 2268.111.0) AppleWebKit/536.11 (KHTML,像壁虎)Chrome/20.0.1132.57 Safari 536.11“,
  “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/536.6 (KHTML,像壁虎)Chrome/20.0.1092.0 Safari 536.6“,
  “Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML,像壁虎)Chrome/20.0.1090.0 Safari 536.6“,
  “Mozilla/5.0 (Windows NT 6.2;WOW64) AppleWebKit/537.1 (KHTML,像壁虎)Chrome/19.77.34.5 Safari 537.1“,
  “Mozilla/5.0 (X11;Linux x86_64) AppleWebKit/536.5 (KHTML,像壁虎)Chrome/19.0.1084.9 Safari 536.5“,
  “Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML,像壁虎)Chrome/19.0.1084.36 Safari 536.5“,
  “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1063.0 Safari 536.3“,
  “Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1063.0 Safari 536.3“,
  “Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 5.1;三叉戟/4.0;SE 2。X MetaSr 1.0;SE 2。X MetaSr 1.0;net CLR 2.0.50727;SE 2。X MetaSr 1.0)“,
  “Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1062.0 Safari 536.3“,
  “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1062.0 Safari 536.3“,
  “Mozilla/4.0 (compatible;MSIE 7.0;Windows NT 5.1;360 se)“,
  “Mozilla/5.0 (Windows NT 6.1;WOW64) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1061.1 Safari 536.3“,
  “Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1061.1 Safari 536.3“,
  “Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML,像壁虎)Chrome/19.0.1061.0 Safari 536.3“,
  “Mozilla/5.0 (X11;Linux x86_64) AppleWebKit/535.24 (KHTML,像壁虎)Chrome/19.0.1055.1 Safari 535.24“,
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null
  null

scrapy利用硒实现爬取豆瓣阅读的方法教程