import scrapy class ZonghengSpider(scrapy.Spider): name = 'zongheng' allowed_domains = ['zongheng.com'] start_urls = ['http://www.zongheng.com/rank/details.html?rt=1&d=1&i=2&p=1'] def parse(self, response): names = response.xpath('//div[@class="rank_d_b_name"]/@title').extract() authors = response.xpath('//div[@class="rank_d_b_cate"]/@title').extract() print(names) print(authors) books = [] for name, author in zip(names, authors): books.append({ 'name': names, 'author': authors }) return books
scrapy crawl zongheng -o book.csv
为什么会运行好几遍?
老师,我这个在本地可以运行,我布置到虚拟机上就一直报错这个,我还重新装载了一次虚拟机,redis的配置文件也都该过。还是不行,这个是为什么啊
老师:
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()
运行的时候没有反应
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637