问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

使用lxml库爬取没有内容?

发布网友 发布时间:2022-04-10 15:38

我来回答

2个回答

懂视网 时间:2022-04-10 19:59

requests from lxml import etree from fake_useragent import UserAgent import pymongo class QiShuSpider(object): def __init__(self): self.base_url="https://www.qisuu.la/soft/sort01/" self.headers={ "User-Agent":UserAgent().random, "HOST":"www.qisuu.la", "Referer":"https://www.qisuu.la", } def get_index_code(self): #声明一个变量,记录重连的次数 retry_link_count=0 while True: try: response=requests.get(self.base_url,headers=self.headers) # print(response.text) except Exception as e: print("连接奇书网失败,原因是:",e) print("正在尝试第{}次重连....".format(retry_link_count)) retry_link_count+=1 if retry_link_count>=5: print("尝试连接次数已经达到五次,停止连接") break else: html_obj=etree.HTML(response.text) # print(response.text) #获取option这个标签列表 option_list=html_obj.cssselect("select>option") return option_list def get_every_page_code(self): option_list=self.get_index_code() for option in option_list: value=option.get("value") #拼接每一页的完整地址 base_url="https://www.qisuu.la"+value print("正在爬取{}链接".format(base_url)) response=requests.get(base_url,headers=self.headers).text html_obj=etree.HTML(response) #获取每一本小数所在的a标签的一个列表 a_list=html_obj.cssselect(".listBox li>a") for a in a_list: novel_href=a.get("href") #拼接每一本小说的完整地址 novel_url="https://www.qisuu.la"+novel_href print("正在爬取链接为{}的小说".format(novel_url)) self.parse_every_novel(novel_url) def parse_every_novel(self,novel_url): reponse=requests.get(novel_url,headers=self.headers) reponse.encoding="utf-8" html_obj=etree.HTML(reponse.text) novel_name=html_obj.cssselect(".detail_right>h1")[0].text clik_num=html_obj.cssselect(".detail_right>ul>li:nth-child(1)")[0].text novel_size=html_obj.cssselect(".detail_right>ul>li:nth-child(2)")[0].text novel_type=html_obj.cssselect(".detail_right>ul>li:nth-child(3)")[0].text update_time = html_obj.cssselect(".detail_right>ul>li:nth-child(4)")[0].text novel_status = html_obj.cssselect(".detail_right>ul>li:nth-child(5)")[0].text novel_author = html_obj.cssselect(".detail_right>ul>li:nth-child(6)")[0].text novel_run_envir=html_obj.cssselect(".detail_right>ul>li:nth-child(7)")[0].text novel_lasted_chapter=html_obj.cssselect(".detail_right>ul>li:nth-child(8)>a")[0].text dict_novel={"小说名称":novel_name,"点击次数":clik_num,"小说大小":novel_size,"小说类型":novel_type,"更新时间":update_time,"小说状态":novel_status,"小说作者":novel_author,"小说运行环境":novel_run_envir,"小说最新章节":novel_lasted_chapter} collection.insert_one(dict_novel) def start_spider(self): self.get_every_page_code() if __name__ == ‘__main__‘: client = pymongo.MongoClient(host="localhost", port=27017) db = client.novel collection = db.novel spider=QiShuSpider() spider.start_spider()

 

使用lxml的css选择器用法爬取奇书网并保存到mongoDB中

标签:环境   imp   soft   www.   exce   ide   link   记录   pymongo   

热心网友 时间:2022-04-10 17:07

请求头不对吧, 打印一下看看有没有请求成功
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
苹果电脑电池充不进电苹果电脑充不进去电是怎么回事 苹果电脑不充电没反应苹果电脑充电指示灯不亮充不了电怎么办 狗狗更加忠诚护家、善解人意,养一只宠物陪伴自己,泰迪能长多大... 描写泰迪狗的外形和特点的句子 国外留学有用吗 花钱出国留学有用吗 !这叫什么号 百万医疗赔付后是否可以续保 前一年理赔过医疗险还能续保吗? 医疗住院险理赔后还能购买吗? 日常生活中你如何使用贴纸的回答? 破晓电影网最新电影 破晓电影网为什么没有怒晴湘西了 德云社相声演员周九良看起来对女粉丝非常冷淡,这是为什么? 手机卡2被锁了,怎么解锁 请问贴模型用的水贴纸怎么用? 周九良为什么是小先生? 破晓电影完蛋了吗 破晓电影网上的电影怎么用ipad看 孟鹤堂和周九良他们之间的关系很不错,其中有哪些暖心的事情呢? 手机SIM卡被锁,怎么解锁? 为什么迅雷看看播放器不能播放破晓网电影,在别的电脑上却可以,我已经卸载好多次了?哪位高手帮帮忙 请问联通手机卡解锁要钱吗? 破晓电影网里电影资源一点击下载,就成了404找不到该页面,怎么解决啊 为什么我的电脑好多网站都打不开呢?比如破晓电影网,是不是我电脑的事? 联通手机卡解锁要钱吗?求大神帮助 手机sim卡被锁了,去营业厅解锁要不要钱? 手机卡被锁了怎么办?去移动营业厅解锁要钱吗? 贴纸使用技巧 巧用贴纸装修更省钱 自贸区的建立,对国内进、出口企业分别有哪些好处? 的力高拍仪色彩不正怎么调,色彩太暗,有点灰? 我是2020年1月底辞职的可以领悟失业补助金吗? 辞职的人可以领失业金吗 2020年九月份辞职的,因为腿部受伤,到今年2021年现在可以领失业保险金吗_百度问一问 刚刚申请的,只发了一个表情,就有显示注意核实对方身份是为什么? 银行卡的金钱存入了100元一直不用会注销吗 银行帐号内在存多少钱才不会被消号.? 银行借记卡里至少要留多少钱才不会被注销 银行卡最少存多少钱不会销号 银行卡里有多少钱才不会被关? 银行卡里有钱就不会被注销吗?一分钱算吗? 工商银行和农业银行卡里有多少钱才不会被自动注销? 下载个什么软件就连接无线网了 吃煮鸡蛋会发胖吗 苹果手机下载一个什么软件能连无线网 银行卡一般有多少钱才不会过期 储蓄卡里最低有多少钱才不会被注销 中信银行卡理财宝存多少钱不会自动注销? 工商银行卡里有多少钱才不会被注销? 万能播放器哪个好