老师,运行之后没有显示出txt文件。怎么解决
selenium如何解决重定向强制跳转网页这个问题?
好好突然就说要重启shell是什么原因啊
# 开发工具是pycharm import re import requests from fake_useragent import UserAgent url = '} resp = requests.get(url, headers=headers) with open('tem.html','wb') as f: f.write(resp.content) """ 运行我的代码后保存本地的html文件中,就没有中文乱码,是不是我和 老师的保存方式不同,而和老师的结果有偏差? """
老师我在软件测试的视频中看到老师可以删除等待输入的竖线后面的字符,怎么实现的?
能看看这个报错吗
一、问题描述如下:
第一种登录方法
header信息内包含cookie信息,然后进行登录已经学会了。
第二种登录方法
首先爬虫登录,然后再进入用户界面。这个方法不会!
登录部分的爬虫,登录不成功,老师您帮忙解决下啊?
二、以下自己写的登录的爬虫代码:
from fake_useragent import UserAgent import requests login_url = "https://www.xiami.com/api/passport/login?_s=5f6dc7cd6de10b55330ddb181589a6bb&_xm_cf_=Dm7tbk5qvorx05qWM87w--zx" headers = { "User-Agent": UserAgent().random } form_data = { "account":"18233301608", "ncoSessionid":"01TYfee2_GraAMkskrBwFyr5N7Hv36ALHbgXhvniqZTFsla5-L3b7D7lHGFGTpBVKZD9bU_PCl1vapuvprHnGq5uy5tCnEO9h2-vlgYxj5u3kjftngikzTT5sGq4pMdRq_YjfjlKJ8sNRNxP0SdMi4Mn1uWsoswSwPHIca11tLxwc", "ncoSign":"05zCa5bJg-baNHof555vbNZh-c4S-6BY4BY4oXagczXJ6s4Zn5_UziyXeRCV6VTqDs3pl74vefKQJO1qRNtp3kWGyOunuJCMzvoZ8LCn4K7TmnETjhCtS2bqSoecARmW8A0vkKi9EXfHhYqQbQe4fZn9zdhIyz8AtvGLOoXsgWLLT-3SMVKvtgjWnUdFluC-EDnTMba0kZB5uk-lwptZzKDfJ2_J7undVWJgij0UvgjeFuJLXENJ4nh0_zZihR6GiYaPxXA0g109iuZuxKA_vhQJ-J0LlTG3BLKmOIybjsfjEyJcPJNqY-sE0xcOYoQrLlYPyk687rhKB-gEBCdjZyquhjg7OLw1QvNS1gEqvH2R5kmlQd5pmnin3iI8mucMm3pmQvOFg1n_tYHxBng4JfqQ", "ncoToken":"web_login_1564504886255_0.08087377440410681", "password":"e10adc3949ba59abbe56e057f20f883e" } resp = requests.post(login_url,headers=headers,data=form_data) print(resp.text)
三、以下是如何抓取登录的url,跟用户的账号密码等信息信息。
url
url.png
用户信息
用户信息.png
如果以上操作不正确,还请老师您给改正!
老师,视频里面的网页版的教程在哪能看到
代码:
from scrapy.cmdline import execute execute('scrapy crawl baidu'.split())
老师请问一下,为什么我运行execute代码的时候直接报错了,而且我创建的baidu.py文件中的def parse(self,response)中的self,response这里提示我也有问题,请问老师这个是什么原因?
老师,start01.bat点击后只闪了一下就结束了,内容看不出有什么问题
老师,我这个打印不出来内容是为啥,看下面的评论说没联网,可是我网络也没问题啊
代码:
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()
def parse_info(self, response): total_price = response.xpath('concat(//span[@class="total"]/text(),//span[@class="unit"]/span/text())').extract_first() community_name = response.xpath('//div[@class="communityName"]/a[@class="info"]/text()').extract_first() area_name = response.xpath('string(//div[@class="areaName"]/span[2])').extract_first()
老师为什么我获得response之后用xpath提取信息,能够正确获得总价total_price,但是小区名称就一直返回None,xpath表达式没有错,在浏览器上用xpath helper也能提取出来,就是pycharm调试的时候不行
老师,这里爬到一些数据像是转码过了,有什么办法解码吗
from fake_useragent import UserAgent import requests from lxml import etree #解析库 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 url:传递进来一个有电影列表的html return:返回一个电影列表的url ''' # if html: #html在有值的情况下在做解析 e=etree.HTML(html) list_url=['http://maoyan.com{}'.format(url) for url in e.xpath('//div[@class="movie-item-hover"]/a/@href')] return list_url def pares_index(html): ''' param url:传递进来一个有电影具体信息的html return:提取好的电影具体信息 ''' e = etree.HTML(html) name = e.xpath('//h1[@class="name"]/text()') type = e.xpath('//li[@class="ellipsis"][1]/a/text()') content = e.xpath('//span[@class="dra"]/text()') return {"name":name,"type":type,"content":content} # actors=e.xpath('') # actors=format_data(actors) # 有重复的演员名字,需要去重 # def format_data(actors): # actor_set=set() # for actor in actors: # actor_set.add(actor.strip()) #strip去空格 # return actor_set def main(): '''控制上述方法的实施,分配相应的url''' num = int(input('请输入多少页:')) for page in range(num): url="https://maoyan.com/films?showType=1&offset={}".format(page*30) list_html=get_html(url) #发送请求 list_url=parse_list(list_html) #解析list_html,返回list_url每个电影的信息 for url in list_url: info_html=get_html(url) movie = pares_index(info_html) print(movie) if __name__ =='__main__': main()
老师,这个代码只运行到请输入多少页,然后就运行结束了。哪里出错了?
老师我的代码是按照视频里面敲的,但是运行的时候就会出错,只可以爬取几条数据,麻烦老师帮我看下子
from selenium import webdriver from time import sleep from lxml import etree # 构造浏览器 chrome = webdriver.Chrome() # 发送请求 url = 'https://search.jd.com/Search?keyword=%E7%AC%94%E8%AE%B0%E6%9C%AC&enc=utf-8&wq=%E7%AC%94%E8%AE%B0%E6%9C%AC&pvid=ce58b28b72ae48c190c8451125b8f894' chrome.get(url) # 拉动滚动条到底部,注意的是代码应该写在获取网页源码之前 js = 'document.documentElement.scrollTop=100000' chrome.execute_script(js) sleep(3) html = chrome.page_source e = etree.HTML(html) # titles = e.xpath('//div[@class="p-name p-name-type-2"]/a/em/text()') titles = e.xpath('//div[@id="J_goodsList"]//div[@class="p-name p-name-type-2"]/a/@title') prices = e.xpath('//div[@id="J_goodsList"]//div[@class="p-price"]/strong/i/text()') for title,price in zip(titles,prices): print(title,':',price) print(len(price)) chrome.quit()
非常抱歉给您带来不好的体验!为了更深入的了解您的学习情况以及遇到的问题,您可以直接拨打投诉热线:
我们将在第一时间处理好您的问题!
关于
课程分类
百战程序员微信公众号
百战程序员微信小程序
©2014-2025百战汇智(北京)科技有限公司 All Rights Reserved 北京亦庄经济开发区科创十四街 赛蒂国际工业园网站维护:百战汇智(北京)科技有限公司 京公网安备 11011402011233号 京ICP备18060230号-3 营业执照 经营许可证:京B2-20212637