好吧,所以我将它用于reddit机器人,但我希望能够弄清楚如何登录任何网站.如果这是有道理的....
我意识到不同的网站使用不同的登录表单等.那么我如何找出如何为每个网站优化它?我假设我需要在html文件中查找内容但不知道是什么.
我不想使用Mechanize或任何其他库(这是所有其他答案都在这里,而不是实际上帮助我了解正在发生的事情),因为我想自己学习它究竟是如何工作的.
urllib2文档真的没有帮助我.
谢谢.
我试图从这个网站http://cheese.formice.com/maps/@5865339获取信息,但是当我请求使用 urllib.urlopen 时,它说我需要登录,我使用的是以下代码:
import urllib
data = {
'login':'Cfmaccount',
'password':'tfmdev321',
'submit':'Login',
}
url = 'http://cheese.formice.com/login'
data = urllib.urlencode(data)
response = urllib.urlopen(url, data)
Run Code Online (Sandbox Code Playgroud)
我在做什么错?
我正在尝试构建一个机器人来从 Twitter 上抓取一些帖子以用于学习目的。问题是浏览器打开并要求登录。但实际上我之前已经登录过。为什么要求重新登录?我的代码中是否缺少某些内容?如果我在这里出错,有人可以指导我吗?如果我不登录,它将给出空的数据框。请帮我。
import pandas as pd
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support.ui import Select
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.by import By
driver=webdriver.Chrome()
driver.get('https://twitter.com/search?q=python&src=typed_query')
driver.maximize_window()
time.sleep(5)
tweets=driver.find_elements(by='xpath',value='//article[@role="article"]')
user_data=[]
text_data=[]
for tweet in tweets:
user=tweet.find_elements(by='xpath',value='//span[contains(text(),'@')]').text
text=tweet.find_elements(by='xpath',value='//div[@lang]').text
user.append(user_data)
text.append(text_data)
driver.quit()
df_tweets=pd.DataFrame({'user':user_data,'text':text_data})
df_tweets.to_csv('tweets.csv',index=False)
print(df_tweets)
Run Code Online (Sandbox Code Playgroud) python web-scraping selenium-chromedriver selenium-webdriver