Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >无法通过在某些搜索框中使用散列标签来生成结果

无法通过在某些搜索框中使用散列标签来生成结果
EN

Stack Overflow用户
提问于 2019-07-13 00:33:09
回答 3查看 382关注 0票数 3

我用Python编写了一个脚本,使用Selenium登录到Instagram,然后搜索一些hashtag,比如在#NewYorkbarbers中,然后获取这个hashtag的链接。我的脚本可以成功登录,如果Not Now框出现,单击Turn on Notifications按钮,然后将该哈希标签放在搜索框中,但我无法让脚本启动该搜索来根据该哈希标签生成结果。

我已经试过了:

代码语言:javascript
运行
AI代码解释
复制
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


class InstagramScraper:

    login_url = 'https://www.instagram.com/accounts/login/?source=auth_switcher'

    def __init__(self,username,password):
        self.driver = webdriver.Chrome()
        self.wait = WebDriverWait(self.driver,10)
        self.login(username,password)

    def login(self,username,password):
        self.driver.get(self.login_url)
        self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'input[name="username"]'))).send_keys(username)
        self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'input[name="password"]'))).send_keys(password)
        self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'button[type="submit"]'))).click()
        try:
            self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'button.HoLwm'))).click()
        except Exception:pass

    def use_hashtag(self):
        self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'input[placeholder="Search"]'))).send_keys("#NewYorkbarbers",Keys.ENTER)

if __name__ == '__main__':
    scraper = InstagramScraper('username','password')
    scraper.use_hashtag()
  • 如何在return方法中使用login(),因为任何理想的方法都应该有返回语句?
  • 我怎样才能产生那个标签搜索的结果呢?
EN

回答 3

Stack Overflow用户

发布于 2019-07-18 02:17:58

返回语句的一般概念是返回。当您在语句中返回时,它会从调用它的位置返回。当你写return value时,它的意思是返回并接受这个值。如果没有给出返回语句,就意味着return None

票数 1
EN

Stack Overflow用户

发布于 2019-07-18 02:30:25

您正在使用Enter键启动搜索,但是如果您在浏览器中打开Instagram,您就会知道这是不可能的。

Instagram不只是在enter的单一键上启动搜索,当您第一次按enter键时,它将集中在第一个搜索建议上,这需要一些时间来加载(这并不保证是您键入的#标记,所以最好也检查文本和单击特定的#标记),当您第二次按enter键时,它将开始搜索当前聚焦的散列表。

甚至这还不够,实际上,您需要等待搜索框的建议下拉打开,然后从建议项中找到所需的#标记,然后按enter键。

基本上,这个脚本太快了,无法给搜索建议出现的时间(即使手动地点击Enter也比下拉显示快两倍,搜索也不会启动)。而且它还需要两次回车,第一次集中第一次建议,第二次开始搜索。

票数 0
EN

Stack Overflow用户

发布于 2019-07-21 16:13:31

在python中,并不是所有函数都需要返回某些内容,甚至不是以返回语句结束所有函数的约定(与其他语言(如C)不同)。事实上,根据this question的说法,最好不要有返回语句。但是,如果您确实坚持要有一个显式返回语句,那么函数末尾的简单return将是最好的选择。

至于您的另一个问题,在加载搜索建议时会出现一个新的div,因此您必须等待该div,然后发送两次enter。

下面是新的use_hashtag方法:(不好意思使用xpath而不是css选择器,但我不熟悉css,铬开发工具一直依赖于类名):

代码语言:javascript
运行
AI代码解释
复制
def use_hashtag(self):
    search_input = self.wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,'input[placeholder="Search"]')))
    search_input.send_keys("#NewYorkbarbers")
    self.wait.until(EC.visibility_of_element_located((By.XPATH, '//*[@id="react-root"]/section/nav/div[2]/div/div/div[2]/div[2]/div[2]')))
    search_input.send_keys(Keys.ENTER, Keys.ENTER)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57017486

复制
相关文章
无法在此iPhone上激活Touch ID,怎么解决?
Touch ID是苹果公司的指纹识别功能,允许用户解锁iPhone或iPad、在苹果商店购物,以及在应用程序中验证Apple Pay等等。
莉莉的碎碎念
2021/09/10
6.1K0
无法在此iPhone上激活Touch ID,怎么解决?
适当愉悦,自建 Minecraft 服务器
本文主要介绍自建 Minecraft 服务器的方法,可以使用提供的公有云服务,Minecraft 对虚拟机配置需求如下:
宋天伦
2020/07/16
7.1K1
适当愉悦,自建 Minecraft 服务器
Python 数组操作_python中数组的表示形式
在python中本身有着列表等数据结构,但是列表只是一种数据的存储容器,不具备任何计算能力。
全栈程序员站长
2022/09/22
3K0
Python 数组操作_python中数组的表示形式
【平面解析几何】直线方程的表示形式
表示与 轴、 轴相交,且与 轴截距为 、与 轴截距为 的直线
攻城狮杰森
2022/06/03
1.8K0
springboot的资源请求验证
基于SpringBoot的资源请求验证(Aspectj和Interceptor两方式实现)附JWT验证token 前言 ​ 在项目中,我们需要对前端请求的资源进行验证,判断是否具有相应的权限。比如某写资源只有在登录之后才有请求权限。本章以请求之前是否登录为权限。
崔笑颜
2020/06/08
8570
VS2010 \...\bin\rcdll.dll 无法找到资源编译器
版权声明:本文为博主原创文章,未经博主允许不得
acoolgiser
2019/01/16
1.3K0
用文字云的形式表示什么款式最畅销
前一文我们讲述了两种在Power BI中展示Top款的方式,我们有时候其实不需要具体的数字,只需直观感受,例如如下这种:
wujunmin
2021/09/07
8810
用文字云的形式表示什么款式最畅销
图解计算机中数据的表示形式
作者个人研发的在高并发场景下,提供的简单、稳定、可扩展的延迟消息队列框架,具有精准的定时任务和延迟队列处理功能。自开源半年多以来,已成功为十几家中小型企业提供了精准定时调度方案,经受住了生产环境的考验。为使更多童鞋受益,现给出开源框架地址:
冰河
2021/02/05
3K0
图解计算机中数据的表示形式
VirtualBox克隆后无法找到网卡的问题
Virtualbox现在更新到了4.1.6版本,我记得在之前的版本中,镜像的克隆只能通过命令行的方式来进行,现在已经可以通过界面来进行克隆了,可以说非常的方便。
大江小浪
2018/07/25
1.3K0
VirtualBox克隆后无法找到网卡的问题
skywalking根据文本信息找到对应的请求
在定位问题的时候,有时候需要找到导致问题出现的那个请求,比如下单。但是只有订单号,怎么去找呢? 目前我们一般是根据下单时间,然后再根据时间去找对应的请求,但是请求很多,需要一个一个打开请求内容去定位该订单的下单请求。 本文使用脚本的方式方便快速定位到对应的请求 根据时间和接口名称获取批量请求 获取批量请求 curl 'http://sky.fy.qq.com/graphql' \ -H 'Content-Type: application/json;charset=UTF-8' \ --dat
十毛
2021/11/24
6070
VSCode 无法加载文件 ······,因为在此系统上禁止运行脚本
 原因:命令行执行策略,默认设置为Restricted不加载配置文件或运行脚本。需变更设置为RemoteSigned
超级小的大杯柠檬水
2023/05/06
1.4K0
VSCode 无法加载文件 ······,因为在此系统上禁止运行脚本
C++核心准则E.19:如果无法选择适当的资源句柄,使用final_action表现清除处理​
finally is less verbose and harder to get wrong than try/catch.
面向对象思考
2020/08/10
5570
解决 cnpm : 无法加载文件 因为在此系统上禁止运行脚本
执行命令行set-ExecutionPolicy RemoteSigned 选y 即可
kirin
2021/02/26
7.1K0
解决 cnpm : 无法加载文件 因为在此系统上禁止运行脚本
如何找到自己的服务器
4.点击自己云服务器的实例id后,就可以看见服务器的基本信息、弹性网卡、安全组等等。
逸轩
2021/09/16
6.9K0
无法转换为内部表示
系统查询表记录时出现“java.sql.SQLException: 无法转换为内部表示”异常,抛出的异常信息如下:
程序新视界
2022/11/30
7040
修复WebView资源未找到导致的崩溃问题
近期 应用新增了很多的崩溃,分析特征,发现崩溃集中在5.0-5.1.1系统上,崩溃的日志如下
技术小黑屋
2020/11/10
2.5K0
linux上找到可用的网络接口
在 Linux 中查找可用的网络接口 我们可以通过几种方式找到可用的网卡。在本指南中,我们将讨论列出 Linux 中网络接口卡的 10 种方法。 1. 使用 ifconfig 命令列出网络接口 使用ifconfig命令查找网络接口详细信息的最常用方法。我相信一些 Linux 用户可能仍在使用它。 $ ifconfig -a enp5s0: flags=4098<BROADCAST,MULTICAST> mtu 1500 ether 24:b6:fd:37:8b:29 txqueuelen 1000 (Eth
入门笔记
2022/06/02
2.4K0
无法为 WSDD 操作找到匹配的 Java 操作
我发现了错误。 只需要把“AndrQues”改成“andrQues”,程序就可以正常运行了。
matinal
2023/10/13
1960
Ajax请求($.ajax())中data属性传参数的形式
实现Ajax提交数据进行请求,其中data属性设置传参的方法有好几种形式,如下: //第一种写法(把参数拼接在URL中,data属性设为空{ })
PM吃瓜
2019/08/12
3.9K0
点击加载更多

相似问题

而网络报废这个错误显示是不可接受的!无法在此服务器上找到所请求资源的适当表示形式。

19

无法接受在此服务器上找不到所请求资源的适当表示形式。此错误是由Mod_Security生成的

116

在此服务器上找不到所请求资源的适当表示形式。此错误是由Mod_Security生成的。

33

Django -未找到在此服务器上找不到请求的资源

146

获取此错误:源服务器未找到目标资源的当前表示形式,或不愿透露存在此表示形式。

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档