Python 如果[string]中的[string]不适用于请求的网页文本
我正试图打开一个网页,并将其中的一些字符串刮到一个列表中。该列表最终将由网页上显示的所有名称填充。在尝试这样做时,我的代码如下所示:Python 如果[string]中的[string]不适用于请求的网页文本,python,screen-scraping,Python,Screen Scraping,我正试图打开一个网页,并将其中的一些字符串刮到一个列表中。该列表最终将由网页上显示的所有名称填充。在尝试这样做时,我的代码如下所示: import xlsxwriter, urllib.request, string, http.cookiejar, requests def main(): username = 'john.mauran' password = 'fZSUME1q' log_url = 'https://aries.case.com.pl/
import xlsxwriter, urllib.request, string, http.cookiejar, requests
def main():
username = 'john.mauran'
password = 'fZSUME1q'
log_url = 'https://aries.case.com.pl/'
dest_url = 'https://aries.case.com.pl/main_odczyt.php?strona=eksperci'
login_values = {'username' : username , 'password' : password }
r = requests.post(dest_url, data=login_values, verify=False, allow_redirects=False)
open_sesame = r.text
#reads the expert page
readpage_list = open_sesame.splitlines()
#opens up a new file in excel
workbook = xlsxwriter.Workbook('expert_book.xlsx')
#adds worksheet to file
worksheet = workbook.add_worksheet()
#initializing the variable used to move names and dates
#in the excel spreadsheet
boxcoA = ""
boxcoB = ""
#initializing expert attribute variables and lists
url_ticker = 0
name_ticker = 0
raw_list = []
url_list = []
name_list= []
date_list= []
#this loop goes through and finds all the lines
#that contain the expert URL and name and saves them to raw_list::
#raw_list loop
for i in open_sesame:
if '<tr><td align=left><a href=' in i:
raw_list += i
if not raw_list:
print("List is empty")
if raw_list:
print(raw_list)
main()
import xlsxwriter、urllib.request、string、http.cookiejar、requests
def main():
用户名='john.mauran'
密码='fZSUME1q'
日志https://aries.case.com.pl/'
目的地https://aries.case.com.pl/main_odczyt.php?strona=eksperci'
登录\u值={'username':用户名,'password':密码}
r=requests.post(dest\u url,data=login\u值,verify=False,allow\u redirects=False)
打开\u sesame=r.text
#阅读专家页面
readpage\u list=打开\u sesame.splitlines()
#在excel中打开一个新文件
工作簿=xlsxwriter.workbook('expert\u book.xlsx')
#将工作表添加到文件中
工作表=工作簿。添加工作表()
#初始化用于移动名称和日期的变量
#在excel电子表格中
boxcoA=“”
boxcoB=“”
#初始化专家属性变量和列表
url\u ticker=0
name\u ticker=0
原始列表=[]
url_list=[]
name_list=[]
日期列表=[]
#这个循环遍历并找到所有的行
#包含专家URL和名称并将其保存到原始列表中:
#原始列表循环
对于《芝麻开门》中的我:
如果我不知道你到底想做什么,但这毫无意义:
for i in open_sesame:
if '<tr><td align=left><a href=' in i:
raw_list += i
开放式芝麻中的i的:
如果“您应该使用xml/html解析器来抓取网站。好的,谢谢。我不明白请求返回的是单个字符串。那么,有没有一种方法可以用来将请求重新组织为多行字符串,而不是一个大字符串?好的,谢谢。我不明白请求返回的是单个字符串。那么,有没有一种方法可以用来将请求重新组织为多行字符串,而不是一个大字符串?看起来你已经找到了这一部分。.splitlines()
方法将字符串拆分为行。我试过了。打印出该操作的结果显示文件中的字符串与字符数量相同,这意味着一个巨大的列,这是不好的。正如文森特所建议的,我学会了使用beautifulsoup。