老师,这里的fake-useragent还是报错,明明已经安装好了,试了好几次也不行,他显示的是没有安装此模块。
from urllib.request import Request,build_opener from fake_useragent import UserAgent from urllib.parse import urlencode from urllib.request import HTTPCookieProcessor from http.cookiejar import MozillaCookieJar def get_cookie(): login_url = 'https://www.docin.com/app/login' # 设置账号密码 form_data = { 'user': '18310640655', 'password': '199759guo' } # 设置请求头 headers = {"User-Agent": UserAgent().random} # 封装函数 req = Request(login_url, headers=headers, data=urlencode(form_data).encode()) #自己保存cookie cookie_jar =MozillaCookieJar() # 保存cookie handler = HTTPCookieProcessor(cookie_jar) opener = build_opener(handler) resp = opener.open(req) #无论我的cookie是否过期都将保存下来 cookie_jar.save('cookie.txt',ignore_discard=True,ignore_expires=True) def use_cookie(): info_url = 'https://www.docin.com/' headers = {'User-Agent':UserAgent().random} req = Request(info_url,headers=headers) #加载cookie信息 cookie_jar = MozillaCookieJar() cookie_jar.load('cookie.txt',ignore_discard=True,ignore_expires=True) handler = HTTPCookieProcessor(cookie_jar) #将信息放到控制器里面 opener = build_opener(handler) resp = opener.open(req) print(resp.read().decode()) if __name__ == '__main__': get_cookie() use_cookie()
老师,我尝试用cookie登录豆丁网,为什么我保存下来的cookie信息是这样的。并且无法登录
不遵守协议会不会有事的,或者怎么判断不遵守协议也无所谓
js2py.internals.simplex.JsException: ReferenceError: global is not defined这个怎么解决
多线程爬虫怎么保证写入数据的时候顺序不乱
老师,视频里java项目的jar包代表的是给项目整体进行压缩了么?python的项目文件怎么打包?,我之前都是直接将项目压缩上传,
老师,这个查找是怎么操作的,我pycharm没有
一直就是说打印不出任何东西
用pycharm运行代码,结果fidder上面抓不到相应的包,配置我是按照教程进行的
为什么我的vscode不会弹出这行灰色的提示(options=options),要怎么弄出来
老师,这三个单引号是什么意思?
里面的语句有什么作用?
from fake_useragent import UserAgent import requests from lxml import etree # 发送请求 class Downloader(): def do_downloader(self,url): print(url) headers={"User-Agent":UserAgent().chrome} resp = requests.get(url,headers=headers) if resp.status_code == 200: resp.encoding = "utf-8" return resp.text # 数据解析 class Parser(): def do_parse(self,html): e = etree.HTML(html) contents = [div.xpath('string(.)').strip() for div in e.xpath('//div[@class="content"]')] urls = ['https://www.qiushibaike.com{}'.format(url) for url in e.xpath('//ul[@class="pagination"]/li/a/@href')] return contents,urls # 数据保存 class DataOutPut(): def do_save(self,datas): with open("F:/baizhan/wobushi/duanzi3.txt","a",encoding='utf-8') as f: for data in datas: f.write(data+"\n") # URL管理器 class URLManager(): def __init__(self): self.new_url = set() self.old_url = set() # 加入一个URL def add_new_url(self,url): if url is not None and url != '' and url not in self.old_url: self.new_url.add(url) # add添加 # 加入多个URL def add_new_urls(self,urls): for url in urls: self.add_new_url(url) # 获取一个URL def get_new_url(self): url = self.new_url.pop() # pop将new_url中的值取出 self.old_url.add(url) return url # 获取还有多个URL要爬取 def get_new_url_size(self): return len(self.new_url) # 获取是否还有URL要爬取 def have_new_url(self): return self.get_new_url_size() > 0 # 调度器 class Scheduler: def __index__(self): self.downloader = Downloader() self.parser = Parser() self.data_out_put = DataOutPut() self.url_manger = URLManager() def start(self,url): self.url_manger.add_new_url(url) # 将URL添加到任务列表 while self.url_manger.have_new_url(): url = self.url_manger.get_new_url() # 取出要爬取的URL html = self.downloader.do_downloader(url) # 获取网页 datas,urls = self.parser.do_parse(html) # 提取数据,datas数据,urls第二,三。。。页的URL或者是二级网页URL self.data_out_put.do_save(datas) self.url_manger.add_new_urls(urls) if __name__ == '__main__': scheduler = Scheduler() url = 'https://www.qiushibaike.com/text' scheduler.start(url)
老师,这个问题怎么改啊?看着和老师视频中的代码没出入呀
是不是漏课了 前面的课没看到讲xpath啊
老师,这个是为什么啊,是图片问题吗? 加载不出来(提示:魔方开放源代码光学字符识别引擎3.02与轻便型无法打开输入文件:yzm1.jpg)
起初报错说我端口决绝访问,我直接改成了0.0.0.0 然后这个错误:builtins.ValueError: unsupported pickle protocol: 5
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2026百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637