老师:
selenium 教学文档在哪里,本章下载资料没有喔?/
老师,我这个打印不出来内容是为啥,看下面的评论说没联网,可是我网络也没问题啊
代码:
from fake_useragent import UserAgent import requests from lxml import etree from time import sleep def get_html(url): ''' :param url: 要爬取的地址 :return: 返回html ''' headers = {"User-Agent": UserAgent().chrome} resp = requests.get(url, headers=headers) # sleep(2) if resp.status_code == 200: resp.encoding = 'utf-8' return resp.text else: return None def parse_list(html): ''' :param html: 传递进来一个有电影列表的html :return: 返回一个电影列表的url ''' e = etree.HTML(html) list_url = ['http://maoyan.com{}'.format(url) for url in e.xpath('//dd/div[@class="movie-item film-channel"]/a/@href')] return list_url def pares_index(html): ''' :param html: 传递进来一个有电影信息的html :return: 已经提取好的电影信息 ''' e = etree.HTML(html) name = e.xpath('//div/h1/text()')[0] type = e.xpath('//div/ul/li[@class="ellipsis"]/a/text()')[0] actors = e.xpath('//div[@class="celebrity-group"][2]/ul[@class="celebrity-list clearfix"]/li/div/a/text()') actors = format_data(actors) return {"name": name, "type": type, "actors": actors} def format_data(actors): actor_set = set() for actor in actors: actor_set.add(actor.strip()) return actor_set def main(): num = int(input('请输要获取多少页:')) for page in range(num): url = "https://maoyan.com/films?showType=3&offset={}".format(page*30) list_html = get_html(url) list_url = parse_list(list_html) for url in list_url: info_html = get_html(url) movie = pares_index(info_html) print(movie) if __name__ == '__main__': main()
docker 的讲解文档在哪里?还有,现在下载的都是3.5版本了,有没有新的视频
老师 为什么返回的是None啊
from urllib.request import urlopen from urllib.request import Request from random import choice url = 'http://www.baidu.com/' # User_Agent列表 # user_agents = [ # 'ua1', # 'ua2', # 'ua3' # ] # print(choice(user_agents)) # 定义User_Agent变量 headers = { "User_Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) 123456" # "User_Agent": choice(user_agents) } # 封装 request 对象 request = Request(url, headers=headers) print(request.get_header("User-agent")) # # 发送请求 # response = urlopen(request) # # print(response.read().decode())
安装scrapy的时候报如图所示的错,是什么原因?
出现了这样的错误 明明已经安装了scrapy-redis
但是运行的时候报错说是没有这个模块
老师,我在第二种登录方式里面加入了超级鹰打码,也实验成功,可以登录。但是当我使用创建文件新的文件一直提示我这个。当我取消了引入这个打码文件就可以创建新的login文件,这个是为什么呢?
我使用了老师说的换别的镜像源 结果还是不行 然后去网上搜索换成其他的镜像源 结果报了这样的错误,该如何解决
安装到最后的两个步骤了,结果在pip3 intsall scrapy出现了问题,老师该如何解决
192.168.99.100,请问这个ip在哪里可以看到,我是win10系统操作的,安装docker时并没有导入镜像的操作,所以请问win10里怎样知道安装docker自动给我分配的IP?
出现了这样的问题,老师该怎么解决
不管是用最新的19.7.0的版本还是用视频里面的17.0.1的版本都出现了这样的问题
xiaoshuo.zip
老师,这个您帮我看一下,我根据视频老师的稍微改了一下。做了一个深度爬虫。有以下几个问题:
1,为什么我这个爬取的一直是所以小说的第一章。不应该是爬取完成一个在爬取下个小说吗?还是说要在我最后一次的yield使用一个while循环。
2,这么多小说怎么分批保存到不同的txt文本。
from fake_useragent import UserAgent import requests from lxml import etree from time import sleep def get_html(url): ''' :param url: 要爬取的地址 :return: 返回html ''' headers = {"User-Agent": UserAgent().chrome} resp = requests.get(url, headers=headers) if resp.status_code == 200: resp.encoding = 'utf-8' return resp.text else: return None def parse_list(html): ''' :param html: 传递进来一个有电影列表的html :return: 返回一个电影列表的url ''' e = etree.HTML(html) list_url = ['http://maoyan.com{}'.format(url) for url in e.xpath('//div[@class="movie-item film-channel"]/a/@href')] return list_url def pares_index(html): ''' :param html: 传递进来一个有电影信息的html :return: 已经提取好的电影信息 ''' e = etree.HTML(html) name = e.xpath('//h1[@class="name"]/text()') type = e.xpath('//li[@class="ellipsis"]/a[1]/text()') actors = e.xpath('//div[@class="celebrity-group"][2]/ul[@class="celebrity-list clearfix"]/li/div/a/text()') actors = format_data(actors) return {"name": name, "type": type, "actors": actors} def format_data(actors): actor_set = set() for actor in actors: actor_set.add(actor.strip()) return actor_set def main(): num = int(input('请输入要获取多少页:')) for page in range(num): url = 'http://maoyan.com/films?showType=3&offset={}'.format(page*30) list_html = get_html(url) list_url = parse_list(list_html) for url in list_url: info_html = get_html(url) movie = pares_index(info_html) print(movie) if __name__ == '__main__': main()
运行的时候没有反应
老师,我在使用多线程爬取文件的时候,会出现文件写入不全,然后我在写入文件的的时候加入锁,但是发现还写入不全,您帮我看一下!
from threading import Thread,Lock import requests from lxml import etree from fake_useragent import UserAgent from queue import Queue class Spider(Thread): def __init__(self,url_queue,lock): Thread.__init__(self) self.url_queue = url_queue self.lock = lock def run(self): while not self.url_queue.empty(): url = self.url_queue.get() print(url) headers = {'User-Agent':UserAgent().chrome} resp = requests.get(url,headers=headers) e = etree.HTML(resp.text) contents = [div.xpath('string(.)').strip() for div in e.xpath('//div[@class="content"]')] #加入锁 self.lock.acquire() with open('qiushi.text', 'a', encoding='utf-8')as f: for content in contents: f.write(content+'\n') self.lock.release() if __name__ == '__main__': base_url = 'https://www.qiushibaike.com/text/page/{}/' lock = Lock() url_queue = Queue() for num in range(1,14): url_queue.put(base_url.format(num)) for i in range(6): spider = Spider(url_queue,lock) spider.start()
老师,我按视频讲解,运行start.py文件时,只显示到Spider closed(finished).没有打印baidu网页内容,这是哪里错了?
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637